1.作業頭
這個作業屬於哪個課程 | https://edu.cnblogs.com/campus/zswxy/SE2020-2 |
---|---|
這個作業要求在哪里 | https://edu.cnblogs.com/campus/zswxy/SE2020-2/homework/11585 |
這個作業的目標 | 熟悉使用while和do-while結構解決問題 |
學號 | 20209121 |
一、本周教學內容&目標
第4章 循環結構 4.1-4.2 熟悉使用while和do-while結構解決問題。
二、本周作業頭
這個作業屬於那個課程 | C語言程序設計II |
---|---|
這個作業要求在哪里 | https://edu.cnblogs.com/campus/zswxy/SE2020-2/homework/11585 |
我在這個課程的目標是 | 熟用C語言 |
這個作業在那個具體方面幫助我實現目標 | 熟悉使用while和do-while結構解決問題 |
參考文獻 | <C語言程序設計> |
三、本周作業
PTA實驗作業
代碼互評
學習總結
四、作業格式
1.PTA實驗作業(20分/題)
從PTA題目集中選出2個你最滿意的題目完成以下內容,選擇題目難度越大,分值越高,每題20分(每項5分)
請再此處列出自己的排名圖片,如:
1.1 題目名1 循環-古角猜想
內容描述:日本數學家古角靜夫研究自然數時,發現一個有趣現象:“如果是個偶數就除2,如果是奇數就乘以3加1”,經過有限個這樣的處理步驟,最后一定能得到1. 任意輸入一個自然數,給出得到結果1的運算過程,輸入一個自然數n,輸出每次運算步驟,直到結果為1。
1.1.1數據處理
數據表達:用了整型變量n,n表示輸入的一個自然數。
數據處理:表達式:n!=1,n%2==0;流程結構:用了if-else語句,while循環語句。
偽代碼:
Begin(算法開始)
輸入 n
scanf 輸入一個自然數
while n!=1
if (n%2==0)
then [n/=2]
else [n=n*3+1]
End (算法結束)
1.1.2實驗代碼截圖
1.1.3 造測試數據
按照以下表格,輸出你的程序面向各種測試數據結果,除了題目給出的測試數據,可以自己再造其他臨界數據,越多越好,並加上必要說明
數值 | 5 | 6 | 4 | 3 |
---|---|---|---|---|
結果 | 5*3+1=16 | 6/2=3 | 4/2=2 | 3*3+1=10 |
16/2=8 | 3*3+1=10 | 2/2=1 | 10/2=5 | |
8/2=4 | 10/2=5 | 5*3+1=16 | ||
4/2=2 | 5*3+1=16 | 16/2=8 | ||
2/2=1 | 16/2=8 | 8/2=4 | ||
8/2=4 | 4/2=2 | |||
4/2=1 | 2/2=1 | |||
說明 | 5經過5次變換得到1 | 6經過7次變換得到1 | 4經過2次變換得到1 | 3經過7次變換得到1 |
1.1.4 PTA提交列表及說明
·格式錯誤:每一個輸出的算式后沒有加上回車鍵,加上‘\n’即可。
·答案錯誤:while 后的條件寫成了‘n==1’,改成‘n!=1’即可。
1.2 題目2 購物(二)
用戶購買了若干個商品(商品數不超過10),現在,他告訴你每件商品的價格,你計算出這些商品的平均價格。
1.2.1 數據處理
數據表達:用了雙精度浮點型變量a,b,c,整型變量count,count表示商品的數量,a表示輸入的一個商品的價格,b用來統商品價格總數,c算每件商品的平均價。
數據處理:表達式:count<10,a==-1, 流程結構:用了else-if語句以及while循環語句。
偽代碼:
Begin(算法開始)
輸入 a,b,c,count
b ← 0
count ← 0
while count<10
scanf 輸入商品價格
if (a==-1)
then [break]
else [b=b+a,count++,c=b/count]
End (算法結束)
1.2.2 實驗代碼截圖
1.2.3 造測試數據
數值 | 890.78 2769.8 -1 | 890.78 2769.8 978.2 | 890.78 2769.8 -1 978.2 | 55 555 5555 -1 | 786 546 -1 345 |
---|---|---|---|---|---|
結果 | 1830.29 | 1148.62 | 1830.29 | 2055.00 | 666.00 |
說明 | 每件商品平均價為1830.29元 | 每件商品平均價為1148.62元 | 程序到-1截止,每件商品平均價為1830.29元 | 每件商品平均價為2055.00元 | 程序到-1截止,每件商品平均價為666.00元 |
1.2.4 PTA提交列表及說明
·部分正確:while 后的條件寫成了count>=10,寫反了,改為‘count<10’即可。
·部分正確:if后的條件寫成了‘a=-1’,改成‘a==-1’即可。
·部分正確:‘count++’與‘c=b/count’順序反了,應該‘count++’在前。
2.代碼互評(5分)
同學代碼截圖
自己代碼截圖
1.第一份代碼在while語句前用了一個輸入語句,輸入了一個商品的價格,而第二份代碼沒有。
2.第一份代碼算的時候計算了循環次數,用了n來記循環次數,然后,最后輸出時直接算總價與總次數的商,從而算出商品的平均價,而第二份代碼則是在每一次一個商品的價格輸入時就與之前的總價相加,接着就算平均價,最后算出平均價,再輸出。
同學代碼截圖
自己代碼截圖
1.第一份代碼用的是for循環語句,第二份代碼則是用的while循環語句。
2.第一份代碼將‘Game Over’的分成次數與輸入的數是否為負數兩種情況來弄,而第二份代碼則是用了一個if語句將兩種情況放在一起來弄。
3.第一份代碼寫了兩個數相等的情況下break,而第二份代碼則是將相等與大於放在一起弄。
3.學習總結(15分)
3.1 學習進度條(5分)
周/日期 | 這周所花的時間 | 代碼行 | 學到的知識點簡介 | 目前比較迷惑的問題 |
---|---|---|---|---|
第八周 | 12h | 112 | 在屏幕上輸出一些語句或字符組成的圖形 | 無比較迷惑的問題 |
第九周 | 12h | 286 | if-else語句 | 計算的算式有些運算符號用的不好 |
第十周 | 15h | 423 | for循環語句 | 一些變量不能夠准確地定義,導致弄算式時輸出的答案是錯的 |
第十一周 | 15h | 536 | 調用並自定義函數 | 自定義函數時搞不清變量類型 |
第十二周 | 17h | 543 | 熟悉多分支結構、字符型數據類型和邏輯運算符 | 分支結構弄不清優先級 |
第十三周 | 18h | 591 | 熟悉多分支結構switch語句的使用 | switch后的表達式與case常量表達式的關系 |
第十四周 | 22h | 638 | 熟悉使用while和do-while結構解決問題 | while后的條件常常不明白是限制條件還是允許繼續循環條件 |