对拍程序

在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的工程目录下




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值