对拍是一种能有效的检查程序是否有误的方式。其原理在于使用一小段程序,将你的程序与一段正确的程序(在平时,我们可以用题解或标程;而在比赛时,我们需要写一段暴力且保证其答案正确性)。
那么如何使用对拍程序呢?
1 新建文件夹。
2 将你的程序生成的.exe和暴力(标程)生成的.exe一起放到这个文件夹下。
3 编写数据生成器
int main() { srand(time(0)); srand( (unsigned)time( NULL ) ); /*这里按输入格式写你的输出*/ return 0; }
按输入格式写输出的意思是假设程序输入10个数据,你的数据生成器也应该输出10个与其格式相同的数据。
生成数据时可以用rand()函数。
运行此程序将.exe放到新建文件夹下
4 编写比较程序
在新建文件夹下新建.txt文件,在其中输入
:again 数据生成器名> input.txt 正确程序< input.txt > 正确程序_output.txt 你的程序< input.txt > 正确程序_output.txt fc 正确程序_output.txt 你的程序_output.txt if not errorlevel 1 goto again pause
(上边的文件名不写拓展名)
保存后将其改为.bat文件然后运行。
若有错误,此时文件夹下应有三个文档,分别是输入数据,你的程序结果,标准程序结果。此时就可以进行调试了。