[問題] UVa 722 的wrong answer

看板C_and_CPP作者 (個字)時間11年前 (2013/04/14 22:19), 編輯推噓2(2014)
留言16則, 3人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Dev C++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 一直runtime error 餵入的資料(Input): 題目 http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=663 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) http://ideone.com/aDPvkt 補充說明(Supplement): 改了輸入方法 手動輸入答案正確 但sumit還是依然失敗 有人可以幫忙看一下嗎...感謝QQ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.171.37.109

04/14 23:00, , 1F
if(array[i+1][j]=='0'){
04/14 23:00, 1F

04/14 23:01, , 2F
這裡會讀取到你沒宣告過的a[101][j] 當然爆炸
04/14 23:01, 2F
但我宣告的是array[105][105]

04/14 23:11, , 3F
你用 fflush 後面又用 gets 是讀不到東西的
04/14 23:11, 3F

04/14 23:13, , 4F
它不是一個一個 key in,所以會把所有 input 都清掉
04/14 23:13, 4F

04/14 23:17, , 5F
另一方面 gets 一次只會讀一行,而且不包含 '\n'
04/14 23:17, 5F

04/14 23:17, , 6F
所以你的輸入部分可能需要重寫
04/14 23:17, 6F
gets存過去array 可以印出他們 我自己手動測試的輸入都能過 但上傳就失敗 但我也覺得應該是輸入的問題 因為不太清楚他輸入的機制是怎麼樣

04/15 08:13, , 7F
你可以把輸入資料存成一個文字檔,例如 input.txt
04/15 08:13, 7F

04/15 08:13, , 8F
debug 的時候在執行檔後面加上 < input.txt 的參數
04/15 08:13, 8F

04/15 08:14, , 9F
程式就會把 input.txt 的內容當成 stdin 來執行
04/15 08:14, 9F
我有用fopen打開題目的input output的答案也一樣 但就在網路上sumit過不了

04/15 18:10, , 10F
反正有用fflush一定過不了
04/15 18:10, 10F

04/15 18:12, , 11F
fflush(stdin),未定義行為.用起來可能感覺會把input清掉,
04/15 18:12, 11F

04/15 18:12, , 12F
那這樣input不就沒東西了嗎?
04/15 18:12, 12F

04/15 22:53, , 13F
跟你宣告多大沒關係 你沒定義他的初始值...
04/15 22:53, 13F

04/16 00:17, , 14F
在 gets(str); 之前加一行 str[0] = '\0'; 把 str 歸零
04/16 00:17, 14F

04/16 00:18, , 15F
以避免當 gets 失敗時 str 的內容沒變
04/16 00:18, 15F

04/16 00:29, , 16F
或是檢查 gets 的回傳值如果為 NULL 則跳出迴圈
04/16 00:29, 16F
感謝 已解 ※ 編輯: myIDis7 來自: 118.171.40.83 (04/16 09:02)
文章代碼(AID): #1HQhhb8n (C_and_CPP)