看板 Prob_Solve 關於我們 聯絡資訊
大家好 :) ACM 11530 讓我遇到了一點麻煩。 在確認過 UVa 的測試輸入沒有 big number 之後,我仍然不斷地得到 WA。 雖然試著在 UVa 討論區尋找資訊,可惜沒有發現我碰上的問題。 我的方法是用 simulation,但仍然一直找不到 WA 的原因, 因此想和大家討論看看。 :) 題目網址:http://0rz.tw/7cikl 程式碼:http://rafb.net/p/4PYLpY89.html 測試資料:http://rafb.net/p/agAEEv19.html,其中第三筆資料為五個空格 測試結果:http://rafb.net/p/RjYdoi76.html 【解決方法】 版友 fadingaway 很熱心地告訴我,問題在於「scanf("%d\n", &t);」這行。 scanf 裡最後加上的 '\n',會導致 scanf 將之後出現的空白字元也取掉。 很可惜的是,我們都不知道是什麼原因造成的。 想請問大家,是什麼原因造成這樣的現象呢?謝謝囉! :) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.120.103.217 ※ 編輯: bafu 來自: 59.120.103.217 (02/19 16:05) ※ 編輯: bafu 來自: 59.120.103.217 (02/19 16:05) ※ 編輯: bafu 來自: 59.120.103.217 (02/19 16:06)
ledia:scanf 的 format 只要有 whitespace 都會把之後的 02/19 16:19
ledia:whitespace 吃掉, 這點看 scanf 的實作源始碼就知道 02/19 16:20
bafu:我在 glibc 的 vfscanf.c 找到相關的資訊了,謝謝 ledia :D 02/19 17:50