我们在练习算法时,很多时候可以将自己的代码跟网上提供的标准代码比对,既可以学习别人的写法,另外也可以找出自己代码存在的问题,方便调试。对拍就是一种很好的调试代码的方式。用正确的代码找出使错误代码出错的数据,或者用效率低的正确代码验证效率高的代码的正确性
对拍总共需要四份代码
1.自己的代码 my.cpp
2.正确的代码 correct.cpp
3.数据生成器 data.cpp
4.比较器 checker.cpp
我们看一个例子:
美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014 年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!
输入格式:
输入在一行中给出正方形边长 N(3≤N≤20)和组成正方形边的某种字符 C,间隔一个空格。
输出格式:
输出由给定字符 C 画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的 50%(四舍五入取整)。
样例输入:
1 | 10 a |
样例输出:
1 | aaaaaaaaaa |
(1)首先写出自己的代码:
在自己的代码主函数加入下面代码:
1 | freopen("in.in","r",stdin); //从in.in文件中读数据 |
my.cpp如下:
1 | #include <stdio.h> |
(2)找一份可以AC的代码:
在代码主函数加入下面代码:
1 | freopen("in.in","r",stdin); //从in.in文件中读数据 |
correct.cpp如下:
1 | #include<stdio.h> |
(3)制作数据生成器:
data.cpp如下:
1 | #include<ctime> |
(4)制作比较器:
checker.cpp如下:
1 | #include<cstdlib> |