18.4 四種卡關情境
接下來是四個新手常見的卡關情境。它們初遇時都很嚇人,但其實各自有固定的嫌疑犯名單——對號入座,通常很快解決。
¶情境一:自己電腦編譯成功,OJ 上卻編譯錯誤
程式在本機跑得好好的,一提交就 CE(Compile Error)。常見原因:
- 本機編譯器版本較舊或較寬鬆:有些舊編譯器(例如年代久遠的 Dev C++ 內建版)會放行不合標準的寫法;OJ 用的編譯器照標準來,直接打回票。
- 用了非標準的函式或標頭檔:只有特定環境才有的東西(例如 Windows 專屬的函式),OJ 上不存在。
處理方式:把 OJ 給你的完整錯誤訊息讀完——編譯錯誤訊息會指出行號和原因,從第一條開始修(後面的錯常常只是第一條的連鎖反應)。AACPOJ 還內建了一個查錯工具:常見編譯錯誤偵測——把程式碼貼上去,它會自動指出十九種新手常見的編譯錯誤與警告,並附上對應的教學說明。