很多时候,我们或许有一个标程(或者爆搜程序什么的,反正答案是对的),一个自己的程序,然而一组一组的数据经过我们的手动输入后并没有什么问题,可就是有错……

咋办,一个一个输数据得到什么时候啊,于是,一个很“高端”的东西诞生了——对拍。

对拍是什么?简单说就是把两个程序对于同一个输入的输出进行比较,没有问题就再来,有问题就停下来,你就可以找到你程序的问题所在了

对拍,需要4个东西:你的程序,答案正确的程序,一个数据生成器,和一个对拍器。

你的程序和答案正确的程序不多说,数据生成器讲讲(知道直接跳过这里):

通常,一个程序的数据一个一个想很累,所以,我们就可以用数据生成器,用来生成随机数据(才能保证数据不同)。

怎么生成随机数呢?很简单:

#include<cstdio>
#include<ctime>
#include<cstdlib>//这两个头文件不可少
int main()
{srand(time(NULL));//程序开头写上这一句printf("%d %d\n",rand()%10,rand()%10);
}

上面的程序就是随机输出两个0-9之间的整数

为什么是0-9之间?

rand()就是生成一个随机数(由于前面的一句是以time为标准,所以rand()会根据时间生成一个正整数,自然不会一样),但是它有可能会很大,所以我们通常在后面mod一个数,如果想从1开始,就在后面加一个1,2开始就加2……

随机数就是这些了,接下来讲怎么写对拍程序。

首先,我们知道运行源代码后会有一个exe文件,把要对拍的两个程序生成的exe文件放在一个文件夹中。

如:

/*待对拍程序1.cpp*/
#include<cstdio>
int main()
{int a,b;scanf("%d%d",&a,&b);printf("%d",(3*a+3*b)/3);
}

/*待对拍程序2.cpp*/
#include<cstdio>
int main()
{int a,b;scanf("%d%d",&a,&b);printf("%d",a+b);
}

好的,就这两个程序了(不要说我无耻,临时打一个,打长了麻烦)。

然后编译运行一次,就有了这个:

将后两个放在一个文件夹中:

再做一个数据生成器,用同样的办法将它的exe文件放在这个文件夹中:

/*数据生成器:用于生成2个0-1000的整数*/
#include<cstdio>
#include<ctime>
#include<cstdlib>
int main()
{srand(time(NULL));printf("%d %d\n",rand()%1000,rand()%1000);
}

然后找到exe文件放入:

接下来就是对拍程序了,这里用c++来写(其实是一样的,只是用system来执行windows命令):

#include<iostream>
#include<windows.h>
using namespace std;
int main()
{int t=1000;while(--t){system("data.exe > data.txt");system("1.exe < data.txt > 1.txt");system("2.exe < data.txt > 2.txt");if(system("fc 2.txt 1.txt"))break;}  if(t==0)cout<<"no error"<<endl;elsecout<<"error"<<endl;return 0;
}  

#include<iostream>
#include<windows.h>
using namespace std;
int main()
{/*这个是有对拍次数的*/int t=这里是检查(对拍)次数;while(--t){system("这里写数据生成器名称.exe > 这里写数据生成器名称.txt");system("这里写程序1名称.exe < 这里写数据生成器名称.txt > 这里写程序1名称.txt");system("这里写程序2名称.exe < 这里写数据生成器名称.txt > 这里写程序2名称.txt");if(system("fc 这里写程序2名称.txt 这里写程序1名称.txt"))break;}if(t==0)cout<<"no error"<<endl;elsecout<<"error"<<endl;/*下面这个没有对拍次数,直到错了为止*//*while(1){system("这里写数据生成器名称.exe > 这里写数据生成器名称.txt");system("这里写程序1名称.exe < 这里写数据生成器名称.txt > 这里写程序1名称.txt");system("这里写程序2名称.exe < 这里写数据生成器名称.txt > 这里写程序2名称.txt");if(system("fc 这里写程序2名称.txt 这里写程序1名称.txt"))break;}*/return 0;
}

运行结果:

文件夹内是这样的:

如果对拍显示有问题,就直接打开data.txt,里面有数据,1.txt和2.txt中分别是你程序1的答案和程序2的答案。

如果你的对拍程序一出错就关闭了,就在return 0前加一个getchar(),让程序停一下,头文件:cstdio

改动一下测试程序,让它出现错误,就会这样了。

感谢:

https://blog.csdn.net/c20190102/article/details/60138907

转载于:https://www.cnblogs.com/_Yrh/p/9252401.html

【FBI WARNING】对拍相关推荐

  1. JS控制台打印FBI WARNING

    代码: console.log(`%c%c FBI WARNING %c %c Federal Law provides severe civil and criminal penalties for ...

  2. 【FBI WARNING】一些Noip的黑科技 持续整理!

    有疑问或错误尽管评论!!  下面以C++为准. 本文手(粘)打(贴)于各大博客之间 有问题..... 我也不懂 max.min的优化 我们知道,打max.min时,要用分支(if语句).这样会使程序超 ...

  3. js实现好看的图案 加勒比海盗(php拍黄片)

    代码如下 </script> <script type="text/javascript">function refreshVerify(){var ts ...

  4. 你有没有被FBI警告过?

    大家伙,我是周杰伦. 不知道大家有没有被FBI警告过? 而就在前两天,真的有人被"FBI"警告了! 为什么我要给FBI打一个引号?实际上并不是真正的FBI,而是有人黑了FBI下面的 ...

  5. Android移动开发之【Android实战项目】DAY15-翻页效果原理

    在<自定义控件其实很简单>系列的前半部分中我们用了整整六节近两万字两百多张配图讲了Android图形的绘制,虽然篇幅很巨大但仍然只是图形绘制的冰山一角,旨在领大家入门,至于修行成果就看各位 ...

  6. 太秀了!那个在 GitHub 用文言文编程的小哥,竟从 28 万行唐诗中找出了对称矩阵

    来自量子位 下面这张图,你能看出来,这首诗妙在哪里吗? 其实,横着读是一首诗,竖着读还是这首诗! 而且,这首诗可不是乱编的,其中的诗句都来自<全唐诗>,读起来也颇有意境. 创造这个奇妙组合 ...

  7. 看上去很强但实际上没什么卵用的网络摄像头教程

    1 笔者一直信奉这样一句话: 没有什么事是理所当然的. 最近两周的经历再次验证了这句话.故事还得从一张图片说起- 某日,笔者走在街上,看到路边躺着一只猫猫,腿就像灌了铅似的迈不动了,兴奋地搓了搓小手手 ...

  8. 姚班大神胡渊鸣回国创业!超一半员工为清华校友,团队人均竞赛金牌数≥2

    本文经AI新媒体量子位(ID:QbitAI)授权转载,转载请联系出处 杨净 边策 发自 凹非寺 清华姚班出身的"计算机图形学超级新星"胡渊鸣同学回国创业啦! 胡渊鸣,何许人也? 他 ...

  9. Android翻页效果原理实现之翻页的尝试

    炮兵镇楼 在<自定义控件其实很简单>系列的前半部分中我们用了整整六节近两万字两百多张配图讲了Android图形的绘制,虽然篇幅很巨大但仍然只是图形绘制的冰山一角,旨在领大家入门,至于修行成 ...

最新文章

  1. CNN模型之MobileNet
  2. 一周最新示例代码回顾 (5/7–5/13)
  3. 聋哑六年级计算机课教学进度计划,小学六年级下册信息技术教学计划三篇
  4. 成功解决TypeError: take() got an unexpected keyword argument ‘fill_value‘
  5. Java核心技术 卷1 多线程----线程安全的集合(4)
  6. FBI树(信息学奥赛一本通-T1365)
  7. maven 打包数据库加密_漫画:工作这么多年,你居然不知道 Maven中 Optional 和 Exclusions 的区别?...
  8. 奇安信代码安全实验室帮助谷歌修复 Chrome 沙箱外高危漏洞,获官方致谢
  9. 软考资料已经 ready,你get 到了吗?
  10. python 趋势线计算式_[原创]图表趋势线公式系数的计算公式
  11. Xiaojie雷达之路---车载雷达信号处理流程
  12. PS 图层的基本操作
  13. 山西尚呈:拼多多砍价窍门秘诀及攻略?
  14. 【PBR系列五】镜面反射BRDF模型(Specular BRDF)及实现效果
  15. 问答知识库快速构建技术解析及行业实践
  16. HTML在线颜色选择器源码
  17. 塔式、机架式、刀片式服务器
  18. HTML网页内嵌入网页
  19. nginx利用反向代理实现获取用户真实ip
  20. 火山安卓RSA加解密操作

热门文章

  1. 粉笔计算机基础知识,计算机基础教育实用化
  2. xbox微软服务器崩溃了,微软Xbox游戏栏崩溃 出现错误代码0x803F8001
  3. zip压缩包解密不用下载任何工具,忘记zip压缩包密码如何找回?
  4. 媒体宣发软文发稿浅谈它的优缺点-世媒讯
  5. 《Javascript 语言精髓》读书心得
  6. TypeError: Cannot read property ‘_wrapper‘ of undefined
  7. 螯合树脂对二价金属离子的吸附能力,处理精度0.02ppm
  8. E+H流量计之Proline Promass F 300 科氏力质量流量计概述
  9. u88财富快车流氓软件RK驱动分析
  10. VS下载插件很慢的一种解决方法