C語言程序設計第四次作業


(一)改錯題

輸出三角形的面積和周長,輸入三角形的三條邊a、b、c,如果能構成一個三角形,輸出面積area和周長perimeter(保留2位小數);否則,輸出“These sides do not correspond to a valid triangle”。

輸入輸出樣例1:
  Enter 3 sides of the triangle: 5 5 3
  area = 7.15; perimeter = 13.00
輸入輸出樣例2:
  Enter 3 sides of the triangle: 1 4 1
  These sides do not correspond to a valid triangle

錯誤信息1

錯誤原因:if內的條件不對,且if和else下面缺少花括號。

改正方法:在if和else下面加上花括號,並把if后面括號內的||改為&&。

錯誤信息2

錯誤原因:sqrt后面的括號應成對出現,缺少括號。

改正方法:補全括號。

錯誤信息3

錯誤原因:經檢查發現,abc的定義類型有錯誤,

改正方法:把abc的類型定義成int。

錯誤信息4

錯誤原因:因為把abc的類型改為了int,所以scanf的輸入類型有誤。

改正方法:把scanf里的%lf改為%d

正確代碼:

(二)學習總結
1
兩者本質的區別是 if-else語句更適合於對區間(范圍)的判斷,而switch語句更適合於對離散值的判斷,if else 與 switch 可以相互轉化,不過有時switch看起來比較好理解。有時有用if else比較好,但變量一定是用switch比較好,當變量不確定時用if else就比較好,switch用來根據一個整型值進行多路分支,並且編譯器可以對多路分支進行優化,所以在多路分支時用switch比if..else if .. else結構要效率高。

資料鏈接:

http://blog.csdn.net/cd520yy/article/details/49533217

https://wenku.baidu.com/view/a22a85442b160b4e767fcf7b.html

2其他

一定要注意變量的類型,是double還是int,以及scanf里的輸入類型,在用到多對括號時,仔細核對括號是否成對。

(三)實驗總結

1、題目

7-2 比較大小
本題要求將輸入的任意3個整數從小到大輸出。
2、流程圖

3、源代碼

4、實驗分析
問題:在c++上正確,提交到pta上不對

原因:輸出格式不對,沒有復制題目給出的格式

解決辦法:復制題目給出的格式,在改變相關數值。

5、本題提交列表

1、題目
7-4 高速公路超速處罰
按照規定,在高速公路上行使的機動車,超出本車道限速的10%則處200元罰款;若超出50%,就要吊銷駕駛證。請編寫程序根據車速和限速自動判別對該機動車的處理。
2、流程圖

3、源代碼

4、實驗分析
提交本題時出現多次編譯錯誤,經過不斷改正並詢問同學,最終理解並能正確編譯。

5、本題提交列表

題目
7-6 計算油費
現在90號汽油6.95元/升、93號汽油7.44元/升、97號汽油7.93元/升。為吸引顧客,某自動加油站推出了“自助服務”和“協助服務”兩個服務等級,分別可得到5%和3%的折扣。

本題要求編寫程序,根據輸入顧客的加油量a,汽油品種b(90、93或97)和服務類型c(m - 自助,e - 協助),計算並輸出應付款。

2、流程圖

3、源代碼


4、實驗分析
自己感覺自己的代碼不是很好,步驟太多,別的沒啥問題,計算好公式就應該都能做對。

5、本題提交列表

1、題目
7-8 12-24小時制
編寫一個程序,要求用戶輸入24小時制的時間,然后顯示12小時制的時間。

2、流程圖

3、源代碼

4、實驗分析

多次提交都有部分錯誤,原因是零點和二十四點歸類錯誤,經過反復改正,真人閱讀題目中的提示,最終改對。

5、本題提交列表

(四)博客互評

風離你在:http://www.cnblogs.com/GX201701-/p/7765475.html

吳晗:http://www.cnblogs.com/moying456/p/7770919.html

賀博濤:http://www.cnblogs.com/he111923/p/7772093.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM