(一)改錯題
輸出三角形的面積和周長,輸入三角形的三條邊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