对拍的使用

对拍是一种能有效的检查程序是否有误的方式。其原理在于使用一小段程序,将你的程序与一段正确的程序(在平时,我们可以用题解或标程;而在比赛时,我们需要写一段暴力且保证其答案正确性)。

那么如何使用对拍程序呢?

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文件然后运行。

若有错误,此时文件夹下应有三个文档,分别是输入数据,你的程序结果,标准程序结果。此时就可以进行调试了。

原文地址:https://www.cnblogs.com/Alarak26/p/8503656.html