(一)改錯題
1.輸出三角形的面積和周長,輸入三角形的三條邊a、b、c,如果能構成一個三角形,輸出面積area和周長perimeter(保留2位小數);否則,輸出“These sides do not correspond to a valid triangle”。
錯誤信息:
錯誤原因:在;的前面丟了一個和sqrt對應的)導致格式錯誤
改正方法:在;的前面加一個)
錯誤信息:
錯誤原因:else沒有對應的if,因為if后面沒有大括號
改正方法:在if和條件后面加一個大括號把if里的程序加進去,如圖所示:
錯誤信息:
錯誤原因:||不對,用||表示的條件不對
改正方法:把||改為&&
(二)學習總結
1.在編程解決問題的過程中,我們會用到多個if語句,if...else if... 語句以及switch語句,查閱資料,總結一下這三種情況的區別何在,並分別舉例加以說明。
答:①if語句就是if后加條件必須跟着大括號,然后必須要有else結尾,不然程序是錯誤的。例如 if(x>y)printf("%d",x);和if(x>y) printf("%d",x); else printf("%d",y);if的返回值為真或假,可以用bool型變量進行存儲,占用一字節。
②if.....else if.....語句就是if后加條件必須跟着大括號,然后是else if()括號里面有條件語句,()里面必須由語句,不然程序錯誤。if(條件1) { } else if(條件2) { }
③if語句處理兩個分支,處理多個分支時需使用if-else-if結構,但如果分支較多,則嵌套的if語句層就越多,程序不但龐大而且理解也比較困難.因此,C語言又提供了一個專門用於處理多分支結構的條件選擇語句,稱為switch語句,又稱開關語句。switch語句之后要跟着case :,在輸出的時候要加break,就可以跳出switch語句,然后結尾加default。
2.對其他你認為需要進行總結的內容進行總結
答:在c語言中如果想將一個字符串存放到變量中,必須使用字符數組,就是用一個字符型數組存放一個字符串,用char來注釋。switch語句一定記得跳出有break,不然會輸出錯誤。
(三)實驗總結
1.比較大小
(1)題目
本題要求將輸入的任意3個整數從小到大輸出
(2)流程圖
(3)源代碼
(4)實驗分析
問題1:找一個t用來替換的時候替換錯誤
原因:等效替代的時候結構混亂
解決辦法:在草稿紙上自己寫出過程。
(5)本題PTA提交列表
2.高速公路超速處罰
(1)題目
按照規定,在高速公路上行使的機動車,超出本車道限速的10%則處200元罰款;若超出50%,就要吊銷駕駛證。請編寫程序根據車速和限速自動判別對該機動車的處理。
(2)流程圖
(3)源代碼
(4)實驗分析
問題1:題中說需要超速的百分比保留整數,沒有保留。
原因:printf語句中沒有寫%.0f
解決辦法:%f改為%.0f
問題2:a=這個語句輸出錯誤,不符合題意
原因:輸入a為double類型,而m n 為int類型,所以在a=這個語句種錯誤了
解決辦法:把(m-n)和n 進行double強制類型交換
(5)本題PTA提交列表
3.計算油費
(1)題目
現在90號汽油6.95元/升、93號汽油7.44元/升、97號汽油7.93元/升。為吸引顧客,某自動加油站推出了“自助服務”和“協助服務”兩個服務等級,分別可得到5%和3%的折扣。
本題要求編寫程序,根據輸入顧客的加油量a,汽油品種b(90、93或97)和服務類型c(m - 自助,e - 協助),計算並輸出應付款。
(2)流程圖
(3)源代碼
(4)實驗分析
問題1:case語句編譯錯誤
原因:在case語句后沒有空格,沒有單引號
解決辦法:在case后面加空格和單引號
(5)本題PTA提交列表
4.12-24小時制
(1)題目
編寫一個程序,要求用戶輸入24小時制的時間,然后顯示12小時制的時間。
(2)流程圖
(3)源代碼
(4)實驗分析
問題1:0點被認為是第二天的時間,沒有考慮
原因:把0點直接歸入了12點
解決辦法:在if語句中加入了a==0這個條件。
(5)本題PTA提交列表
(四)博客互評
1.胡展業http://www.cnblogs.com/SYDneyHZY/p/7774739.html
2.郭展旭http://www.cnblogs.com/1234569ss/p/7754274.html
3.賀雲濤http://www.cnblogs.com/zxh980818/p/7775420.html