目前差不多已經刷了接近三百多道題,還是談談在解題過程中遇到的一些問題吧。
1.最常見的一個錯誤就是根據樣例來設計程序時,陷入太深以至于將自己程序中的一些變量直接替換成樣例輸入中的數值,這樣本來可以全對的題只能得一部分分值。建議在解題過程中,將這些變量用文字描述出來,不然到后面大腦短路糊里糊涂的把常數代替成了變量。舉個例子,題目說要輸入N個用戶,但樣例給了7個用戶,那么有些人在編程過程中忘記了N的意義,會直接用7來代替,當然這也能通過樣例,變量數目少的話比較容易發現錯誤,但變量一多就有點難以發現問題所在。
2.在設計程序時,能用數組來表示相同類型的數據時盡量用數組來映射表示。舉個例子,題目說要計算每個學生‘C’,‘M’,‘E’,‘A’四門成績的排名時,千萬不要一個一個算每一門成績的排名,而是用數組+結構體的形式存儲這些科目的相關信息(包括排名分數id等),若涉及到優先權,直接將優先權作為屬性放到結構體中便是。
3.在解決某些需要查詢操作的題目時,往往聲明結構體數組,數組下標與數組元素的某一屬性比如說id一致,這樣在查詢時就很方便了。還有在輸出某些信息時一定要確定它們是不是被真正修改了的,有可能你修改的只是個副本,而你裝輸入信息的那些容器中的原先內容并沒有改變。舉個例子,聲明一個隊列,輸入的數據你用數組來裝,在處理數據時你覺得應該用隊列來解決,但是入隊的只是數組元素的一個副本,你去修改隊中元素并沒有什么影響,所以你需要從隊中元素提取一些信息然后關聯到原數組中去,比如說隊中元素的id,那么可以用這個id去索引數組元素,然后去改數組元素的相關內容。總結就是用什么裝的數據,就要改什么中的數據,中間容器只是一個輔助。
新聞熱點
疑難解答