当前位置:   article > 正文

对拍程序(易懂版)

对拍程序

目的:验证 a+b 程序的正确性


步骤1:

编写第一个程序1.cpp(正确性待验证)

#include <iostream>
using namespace std;

int main()
{
	int a,b;
	cin >> a >> b;
	if(a%10==5 || b%10==5)
        cout<<a+b+2;
    else
        cout<<a+b;
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

步骤2 :

编写第二个程序2.cpp(正确性毋庸置疑)

#include <iostream>
using namespace std;

int main()
{
	int a,b;
	cin >> a >> b;
    cout<<a+b;
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

步骤3:

编写第三个程序data.cpp(生成测试数据)

#include <iostream>
#include <ctime>
using namespace std;

int main()
{
	srand(time(0));
	int a = rand();
	int b = rand();
	cout<<a<<' '<<b<<endl;
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

步骤4:

编写第四个程序control.cpp(比对程序1、2的输出结果)

#include <iostream>
using namespace std;

int main()
{
    for(int i=0;i<200;i++)
    {
        system("data.exe >data.txt");
        system("1.exe <data.txt >1.txt");
        system("2.exe <data.txt >2.txt");
        if(system("fc 1.txt 2.txt"))
        {
            cout<<"通过的次数:"<<i<<endl;
            cout<<"输入的数据:";
            system("type data.txt");
            cout<<endl<<"WA"<<endl;
            return 0;
        }
    }
    cout<<"AC"<<endl;
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

(补充)

文件位置情况:

所有文件在同一目录下

在这里插入图片描述

编译和执行顺序:

1.cpp → 2.cpp → data.cpp → control.cpp
1.cpp、2.cpp、3.cpp 仅需要编译
control.cpp 编译加执行

执行效果:

在这里插入图片描述

打包后的所有文件

自取链接不需要积分/C币下载

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/72655
推荐阅读
相关标签
  

闽ICP备14008679号