对拍程序
Posted WayToAccept
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对拍程序相关的知识,希望对你有一定的参考价值。
在oj上提交程序,总是出现wa的时候会很苦恼,特别是你不知道那里错了的时候。
别怕,有了对拍程序,你再也不用担心找不出原因了!
对拍程序,是一个很好用的工具,上升一下,其实就是自动化测试工具
现在有A、B和C三个程序,其中A是完全正确的程序,B是你自己写的有一些bug(假如有的话),C是输入样例生成程序。
我们想让C自动随机生成输入样例data.in,然后A,B同时以data.in作为输入,产生各自的输出文件A.out,和B.out,最后对比两个输出。
如果输出文件相同(多次测试后),那么就可以假定A和B是等价的(A正确,B就正确);否则就是B程序在某个样例上与A对不上。这样就能帮我们更快定位bug。
现在我们让程序自动完成上面两行的工作,那么这个程序就是对拍程序,不妨称它为D程序:
D程序长这样:
#include <stdio.h>
#include <windows.h>
int main()
int t=100;
while(t--)
system("C.exe>data.in");
system("A.exe<data.in>A.out");
system("B.exe<data.in>B.out");
if(system("fc A.out B.out")) break;
system("pause");
return 0;
其中“<”为重定向输入,“>”为重定向输出
运行时要把A.exe B.exe 和C.exe放在D的工程目录下
以上是关于对拍程序的主要内容,如果未能解决你的问题,请参考以下文章