引入:
首先,对拍是我们考试的时候常用的手法,既可以检验代码正确性,又不用我们耗费太多精力
但是,我们将对拍放到后台,有的时候拍出了问题,我们却发现不了,导致拍出错也没时间调
下面小编就来讲一讲怎么很好的处理这个问题
普通版本
#include <bits/stdc++.h>
using namespace std;
int main(){
system("g++ a.cpp -o a");
system("g++ data.cpp -o data");
system("g++ std.cpp -o std");
for(int T=1;T;T++){
system("./data");
system("./a");
system("./std");
if(system("diff -b -B -q a.out std.out")) return cout << "Wrong Answer" << endl,0;
else printf("test : %d : Accept
",T);
}
return 0;
}
这样的对拍貌似没有问题,但是却不能让我们及时发现自己的错误
所以我们需要优化,下面就是优化版本
优化
#include <bits/stdc++.h>
using namespace std;
int main(){
system("g++ a.cpp -o a");
system("g++ data.cpp -o data");
system("g++ std.cpp -o std");
for(int T=1;T;T++){
system("./data");
system("./a");
system("./std");
if(system("diff -b -B -q a.out std.out")) return system("kill -9 -1"),0;
else printf("test : %d : Accept
",T);
}
return 0;
}
这样不仅可以很容易的发现自己的错误,更可以加深印象,而且绝对不会出现没有看到的情况
是不是很实用呢?
觉得实用点点推荐叭