对拍
第一步
肉眼静态查错 将明显错误改正
第二步
构造数据 验证每一段逻辑
结合输出(打印)调试
第三步
暴力对拍:
在文件夹内新建文本文档 ,名称改为run.bat
:loop
@echo off
gen.exe>in.txt
my.exe<in.txt>myout.txt
std.exe<in.txt>stdout.txt
fc myout.txt stdout.txt
if not errorlevel 1 goto loop
pause
分别运行
my.cpp(优化程序)
优化程序,用结果正确的暴力程序来查错
std.cpp(b)
暴力写法,保证一定要对,但是时间会超限,用暴力中的正解来查找优化程序中的错误
gen.cpp(生成随机数)
#include<bits/stdc++.h>
using namespace std;
//返回0到x-1之间的随机数
//rand()函数返回0-32767之间的一个随机数
int gen(int x)
{
return rand()*rand()%x+1;
}
//返回l到r之间的整数
int gen(int l,int r)
{
return rand()*rand()%(r-l+1)+l;
}
int main()
{
//初始化种子
srand(time(0));
int a,b;
//生成一组随机数据
a=gen(1,200);//在1到200范围内
b=gen(1,200);
cout<<a<<" "<<b<<endl;
return 0;
}
最后再次点开run.bat 查找错误
一直运行就没有错误,停止的话就表明出问题了

浙公网安备 33010602011771号