返回:賀老師課程教學鏈結
專案要求
【專案1:分段函式求值】
從鍵盤輸入x的值(要求為實型),根據公式1計算並輸出x和y的值。
[參考解答]
解法1
#include #include int main ( )
同學們的解法中,還有:
解法2
#include #include int main ( )
這個解法不能算錯,但是不好,它會讓計算機多「做」一些事情。例如,當輸入x的值為1時,解法1只需要進行一次判斷,直接求值即可,而當輸入x的值為8時,解法1也只需要進行3次判斷。但對於解法2,無論輸入是多少,4次判斷都少不了。
這是涉及「效率」的問題,可能在此處無關大礙,但專業人員對程式評價是,正確是底線,接下來就要關注效率。
充分用好else分支,顯然程式更易懂一些,要習慣於用這種寫法。
再乙個需要強調並於條件的寫法。以(x>=2 && x<6)為例,有人會寫成(2=x>=2)時,不會有編譯錯誤,但更大的風險卻隱藏其中。例如x=4時,
(x>=2 && x<6)的值為真(1):(x>=2)和(x<6)同時為真,故為真;
(6>x>=2)的值為假(0):為假為原因是,6>4為真(1),故表示式相當於(1>=2);
事實上,由於(6>x)的取值只能是0或1,無論x取值多少,(6>x>=2)永遠為假。
將表示判斷的表示式寫好,事關正確性與效率。
有同學寫出了下面的解法:
解法3
#include #include int main ( )
這個寫法中,終於在第13行用了乙個else。看似用上了雙分支是好事,這個程式卻是完全錯誤的。輸入0或4執行一下,就會發現錯誤了。而分析程式,確實只要(x>=6 && x<10)為假,即使x<6已經在前面給y賦過值,else分支仍然要執行,y將被重新賦值,由此產生錯誤! 《C語言及程式設計》實踐參考 分數的累加
專案要求 技巧 專門設定乙個變數s表示累加項的符號,取值隨著迴圈,每次乘以 1。從而在 1 1之間變化。迴圈加求和的累加要用累加的項 i i 1 乘以這個表示符號的s。5 1 3 3 5 5 7 7 9 19 21 這是我們的目標。品品這樣的思路。一口吃不成胖子,學會一口一口吃飯。用心程式設計,再大...
《C語言及程式設計》實踐參考 分數的累加
專案要求 1 1 2 20 這個應該會 用for迴圈完成,其他迴圈自行完成 include int main 2 1 1 2 1 3 1 20 分數的累加,注意兩個整型相除,商也為整型,而顯然求和結果應該是小數 用for迴圈完成,其他迴圈自行完成 include int main 3 1 2 2 3...
《C語言及程式設計》實踐參考 求階乘函式
返回 賀老師課程教學鏈結 專案要求 專案4 求階乘函式 1 請輸出滿足條件n a b c 的所有三位數n,其中,a b c分別是n的百 十 個位數。要求用自定義函式實現求階乘。int main long fac int n 用於求n的階乘 參考解答 解法1 includeint fact int i...