|
今天下午上C語言課的時候,老師把上次程序小測試的批改結果發下來了 |
一派护法 十九级 |
這是同桌的: 這是我的:
|
一派护法 十九级 |
其中if (counter>=5)這條語句被扣了1分。老師說,這條語句雖然對程序運行沒有任何影響,但是我這裡邏輯有問題,因為按理說這裡counter是永遠不可能大於5的,因此只需要寫counter==5就行了。
|
一派护法 十九级 |
但是這是我這麼多年寫程序的基本習慣,把==5寫成>=5主要是為了容錯,意思就是說counter只要出現了大於5的值就強制歸零并換行。而不至於因為前面的程序有bug,出現了counter>5的情況卻未及時換行清零導致不可預料的結果,甚至出錯死機,這種情況在單片機程序中就比較容易出現,比如外界環境干擾就有可能使程序跑飛。 不過這裡只是一個很簡單的C語言小程序,而且是在計算機上執行的,所以寫>=完全沒必要。。。。。出錯的概率幾乎為0
|
一派护法 十九级 |
雖然我這麼多年的編程習慣是把計數器清零的條件==n寫成>=n,但是在考試中我還是得要注意這是一個扣分點。
|
一派护法 十九级 |
還有就是,VC6中的float類型的變量,賦值的時候要在數字後面加f,比如:float a = 4.3f,否則就會出現警告。但是課本中卻沒有加f,老師之前也以為加了f肯定是錯的,編譯會出錯。所以考試時,還是不要加f,避免被扣分。
|
一派护法 十九级 |
第二題中的while那個左大括號我忘了換行,不過這沒有什麼。因為C語言並沒有強制規定所有的大括號必須單獨占一行,只是習慣上寫C程序的時候大括號單獨占一行。
|