关于对拍

引入:

首先,对拍是我们考试的时候常用的手法,既可以检验代码正确性,又不用我们耗费太多精力
但是,我们将对拍放到后台,有的时候拍出了问题,我们却发现不了,导致拍出错也没时间调
下面小编就来讲一讲怎么很好的处理这个问题

普通版本

#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\n",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\n",T);
    }
    return 0;
}

这样不仅可以很容易的发现自己的错误,更可以加深印象,而且绝对不会出现没有看到的情况

是不是很实用呢?
觉得实用点点推荐叭

posted @ 2020-11-03 20:30  HISKrrr  阅读(124)  评论(7编辑  收藏  举报