对拍

第一步
肉眼静态查错 将明显错误改正
第二步
构造数据 验证每一段逻辑
结合输出(打印)调试
第三步
暴力对拍:

在文件夹内新建文本文档 ,名称改为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 查找错误

一直运行就没有错误,停止的话就表明出问题了

 

 

 

posted @ 2022-10-03 11:04  4lovls  阅读(56)  评论(0)    收藏  举报