程序錯誤自檢幫助

程序錯誤自檢幫助
這周的解題報告週日不知道能不能出來,因爲星期六晚上寫的時候sicily妹子生病登陸不了了, 所以先放一篇文章將就着吧。

當你的程序提交後返回的不是accept時,不要着急先自己冷靜下來檢查。
 
首先先把程序完全看一遍,看看有沒有打錯的地方導致程序的功能與自己想表達不一致,比如 if (ans==1) 打成 if (ans=1) 這樣的錯誤算是語法錯誤吧。
 
在確認語法錯誤後,再確認一下程序的功能是按照你的思路去運行的,也就是說你確定你已經把你的思路完全表達出來了,這一階段在於檢查你自己的程序的邏輯。通常可以採用在程序運行中途的時候輸出一些值看看這些值是否和你手工運行你的程序流程得到的輸出值一致
 
而假設你確定是你的思路出錯時,也不要急着把程序刪掉,把他保存起來,因爲第一可能你現在的思路還是錯的,舊的思路往前一步纔是對的呢?或者你的舊程序有部分是對的可以直接拷貝出來用於新程序。反正把舊的保留也無傷大雅不是麼 



常見錯誤對應關係:
Wrong Answer:思路錯誤,語法錯誤

Time Limit Exceed: 你的程序太負責或者太笨重導致運行超過題目運行時間限制。我們判斷程序是否超時的一個大概標準時程序1秒約執行1億條語句。比如判斷n個數是否素數。對於每次判斷需要循環(根號n)次,那麼最後判斷這n個數是否素數的運行次數大概是 n*(根號n)

Memory Limit Exceed:你申請的內存超過了題目限制,一般大概的估計法是一千萬個int類型大概佔用30mb
另外不要在函數內部聲明大數組,因爲函數分配變量的內存默認是小於16mb的(我沒記錯的話)

Runtime Error:這個錯誤的最常見的誘因是你在使用數組時下標超過了數組的大小導致,還有除數爲0以及其他一些亂七八糟的邏輯錯誤導致

PE:檢查是否有多餘(遺漏)的空格和回車 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章