C語言博客作業--嵌套循環
一、PTA實驗作業
題目1:7-1 查詢水果價格
1. 本題PTA提交列表
2. 設計思路
3.本題調試過程碰到問題及解決辦法
- 怎么在輸入0時直接跳出循環?
一開始,將輸入0的情況直接寫在了switch語句中,但是結果雖然跳出,仍然輸出了price = 0.00
仔細查看,原來是把輸出語句在循環里面,所以不能直接在switch語句中直接加入,而是在經過一個判斷,如果code=0,count=6,否則再進入switch語句中。
解決方法:既然已經設置了一個計算輸出幾次的變量count,不妨讓code=0時讓count=6,6大於5,直接跳出循環。
題目2:7-7 歌唱比賽評分系統
1. 本題PTA提交列表
2. 設計思路
3.本題調試過程碰到問題及解決辦法
- 問題一:將累加放在了第二個輸出后面,導致第一個num沒有累加到。
調試:
可知第一個數據90沒有累加到sum里面
解決方法:
將sum+=num放到第二個輸入前面,借助循環加到sum里面,再在外面補充一句加最后的num。 - 問題二:如圖
起初結果錯誤,一直結果錯誤,但因為最后求average的式子直接寫在一起,調試出來只能一下看出average結果錯誤,其他變量均沒錯,所以可能是這個式子出錯了。
解決方法:average=1.0*(sum-min-max)/(n-2),n未有減2,導致的結果錯誤。
題目3:7-8 餐飲服務質量調查打分
1. 本題PTA提交列表
2. 設計思路
3.本題調試過程碰到問題及解決辦法
- 當count中有等於0時,不能正確的換行,錯誤代碼:
經調試,當count4等於0時不會進入循環,所以不會輸出\n
解決方法:不在循環里面判斷是否輸出\n,而是在循環結束后換行,絕對沒錯。
二、同學代碼結對互評
1.互評同學名稱
- 陳張鑫
2.我的代碼、互評同學代碼截圖(此處截圖核心代碼就好,不一定截圖全部代碼,圖上指明是誰的代碼。)
題目:餐飲服務質量調查打分
-
我的代碼
-
同學代碼
3.我和同學代碼不同在哪里?有哪些各自優勢?你更喜歡哪種代碼風格?如果同學代碼有錯的也請幫忙指出來哪里出問題。
-
不同點1:進入循環的方式不同。
我的代碼是遞增的方式,repeat到達指定值時不再循環,而且是用for循環寫的,較直觀;同學的代碼是先給定repeat的值,遞減的進行,到repeat==0時,不再循環,而且用while循環寫的,需要記得在循環里加上repeat--,這里很容易漏掉,造成死循環。我更喜歡我的風格。 -
不同點2:判斷分數個數方法不同
我的代碼是使用switch語句,同學的代碼使用的是if-else-if語句,我的代碼較直觀,也比較容易書寫,他的代碼較復雜,所以我更喜歡我的風格。 -
不同點3:輸出換行的方式不同
我使用的是通常的scanf語句,而他直接用putchar,這里我認為他比較好,比較省時間,也更容易,所以我更喜歡他的風格。 -
他的代碼不足:對一系列score賦了兩次初值,其實可以直接放到repeat循環里面,省事省力,而且格式也比較亂,有待提高。
三、截圖本周題目集的PTA最后排名。
四、本周學習總結
1.你學會了什么?
-
學會了使用再循環中使用break和continue語句。
break語句是循環到break語句時就直接跳出循環;continue語句是直接結束這輪循環,不執行continue后面循環的內容,開始下一輪循環。 -
通過打印空心菱形的那道題,懂得了打印類似圖形的基本思路,那就是要通過大循環中i變量的遞增或遞減,控制空格或者字母的輸出,對嵌套循環的理解加深了。
-
練習了循環的嵌套習題,大部分還是會做的,但是對於某些題目還是要上網查一下思路,理解后自己打一遍代碼,在這個過程中,認識到了自己的不足,同時學會了一些新的思路和思考方式。
2.本周的內容,你還不會什么?
本周內容基本上已經學會,接下去就是不斷鞏固練習。