多语言展示
当前在线:929今日阅读:61今日分享:18

如何用C++编写对拍程序来检测程序是否正确?

在参加信息学比赛时,我们写完程序后常常会担心自己写的程序是否正确,即使能确定算法正确,往往也会担忧是否会在某些细节上出错。一个很好的办法:编写一个保证结果正确、编写起来很简单的程序,与你的程序输入相同的数据,若不一样,则说明你的程序可能出错了。然而,编多个测试数据,并且人工输入进两个程序通常是非常麻烦的事。我们可以编写对拍程序,来让计算机来做这种麻烦的事。这里,假设我要测试我的归并排序程序是否正确。
工具/原料
1

Windows 操作系统

2

C++编辑器、编译器

方法/步骤
2

准备一个保证正确的程序,这个程序输入输出格式必须与上面的程序完全相同。

3

准备输入数据生成程序。注意,生成的数据必须完全符合上面两个程序的输入格式。srand()、rand()为生成随机数的函数,这里不做介绍,请大家上网搜索。

4

编写对拍程序。TestSort.exe:你将要提交的程序。Sort.exe:你为了对拍写的保证正确的程序。Data.exe:输入数据生成程序。

测试结果
1

将四个程序全部编译成exe文件并放在相同目录下,运行对拍程序。

2

等待一段较长的时间,若程序一直显示“找不到差异”,那么说明你的程序很可能使正确的。如果出现“Error!”,那么你的程序是错误的,你可以利用现在生成的数据Data.txt,来调试你的程序。

注意事项

输入输出格式一致!

推荐信息