需要写三个程序,makedata.exe 产生测试数据,
program1.exe 是你要检测的程序,program2.exe 往往是一个正确但效率不高(暴力的居多)的程序。
代码很简单,稍作解释
:loop //loop表示循环的开始
makedata.exe //运行makedata.exe产生一组测试数据
program1.exe //运行第一个程序
program2.exe //运行第二个程序
fc program1.out program2.out //比较两个输出内容,两个out写在同一行
if %errorlevel%==0 goto loop //如果输出完全一致,继续循环测试下一组数据
pause //否则则停止
红色标记这句特别容易写错,==0表示一致,==1表示有不同,注意这个if语句没有then。
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 另外一种写法<<<<<<<<<<<<<<<<<<<<<<<<<
:loop
makedata.exe
program1.exe program2.exe
comp program1.out program2.out /A /L
goto loop