MySQL中一個文件疏漏的分析測試
阿新 • • 發佈:2022-05-05
新生賽D題貪心一直WA而又debug不出來,只能用對拍拍一下子
對拍的基本思路:有正確程式/小範圍正確程式right.cpp, 你的WA程式wrong.cpp, 隨機數生成測試的程式test.cpp三個程式
test.cpp:
srand(time(0)) 首先選定時間作為隨機數種子
然後用隨機數生成序列
#include <bits/stdc++.h> using namespace std; int main () { srand(time(0)); printf("10\n"); printf("%d 0\n", rand() * rand() % 100000 + 1) ; printf("0 %d\n", rand() * rand() % 100000 + 1) ; for (int i = 1; i <= 8; i ++) { printf("%d %d\n", rand() * rand() % 100000 + 1, rand() * rand() % 100000 + 1); } return 0; }
RAND_MAX至少為32767,如果擔心不夠大可以再乘一個。
然後把三個程式放到同一個資料夾裡面,新建三個txt,
建立一個txt,內容如下:
g++ test.cpp -o test -g
g++ right.cpp -o right -g
g++ wrong.cpp -o wrong-g
:loop
test.exe >1.txt
right.exe<1.txt>2.txt
wrong.exe<1.txt>3.txt
fc 2.txt 3.txt
if not errorlevel 1 goto loop
pause
goto loop
前三行是對程式的編譯
後面是迴圈比較right.cpp , wrong.cpp的輸出2.txt,3.txt, 如果沒有區別就會繼續迴圈,否則就會停止,停止時就可以觀察比較結果的不同。
把這個txt檔案拓展名改為.bat指令碼檔案,就可以運行了。