除錯與對拍(一) 生成測試資料 對拍

2022-11-24 17:41:13 字數 1006 閱讀 2555

今天打比賽時令小編很氣憤,隔壁lsh有檔案執行錯誤,重提了一遍老師就收,而小編重提卻愛搭不理,於是小編決定還是自己造個資料把**重測一遍,於是潛心鑽研生成測試資料的方法。

其實很簡單,用隨機數生成器生成幾個隨機數再根據資料規模取模就可以了,(必要時可以增加一些特定測試點),**就幾行不做解釋了(別問我為什麼,windows系統程式設計指令就是這樣,想想hello為什麼要這麼拼寫吧):

data.cpp

1 #include2 #include3 #include4

using

namespace

std;

5int

main()

6

接著是兩組測試**(一看就會出現問題)

a.cpp

1 #include2

using

namespace

std;

3int

main()

4

b.cpp

1 #include2

using

namespace

std;

3int

main()

4

通常兩份**會是正解和暴力**,必須先保證暴力是正確的,然後不斷生成輸入資料比較暴力和正解的答案,以此檢查正解是否是對的。

接著是對拍程式:

compare.cpp

1 #include2 #include3

using

namespace

std;

4int

main()514

if(n==0) cout<<"

great!

"<15else cout<<"

error

"<16return0;

17 }

先生成測試資料,在分別輸進兩個程式中,最後比較輸出結果。【注意】:必須檔案都在同一目錄下,而且對拍程式操作的是exe檔案。