如何快速便捷地比较两份代码输出结果的不同?
当你的结果一直WA,WA,WA,面对如此
通常的做法就是标程输入相同的数据,然后自己一一比较结果是否一致,好伤神。。。
这里有种做法叫做对拍,就是把两个函数的输出一起作比较。
例如比较这两代码
#include<stdlib.h>
#include<stdio.h>
int main()
{
freopen("in.txt", "r", stdin);
freopen("myout.txt","w", stdout);
int a,b;
while(scanf("%d%d",&a,&b)!=EOF)
{
printf("%d\n",a-b);
}
return 0;
}
#include<stdlib.h>
#include<stdio.h>
int main()
{
freopen("in.txt", "r", stdin);
freopen("out.txt","w", stdout);
int a,b;
while(scanf("%d%d",&a,&b)!=EOF)
{
printf("%d\n",a+b);
}
return 0;
}
根据以上例子
现简要写出其做法:
三步走:
1.以文件的形式给两个函数导入一组数据(用同一个文件名如:myin.txt)。然后以不同的文件名保存输出(myout.txt,out.txt)
2.新建一组文件
文件内容:
fc myout.txt out.txt
pause
然后把文件后缀改成 bat 如:22.bat
3.运行两个文件后,点开22.bat即可
如果两个代码运行结果不同则会有如下显示
如果相同显示结果
PS:方便吧,今天刚学的,这样就不用耗眼神自己去一一比较输出结果了
最后在附上一份随机生成输代码:
#include<stdlib.h>
#include<stdio.h>
int main()
{
freopen("myin.txt", "r", stdin);
freopen("myout.txt","w", stdout);
int a,b;
int i;
for(i=1;i<=100;i++)
{
a=rand()%100+1;
b=rand()%100+1;
printf("%d %d\n",a,b);
}
return 0;
}