這個作業屬於哪個課程 | https://edu.cnblogs.com/campus/zswxy/SE2020-2/ |
---|---|
這個作業要求在哪里 | https://edu.cnblogs.com/campus/zswxy/SE2020-2/homework/11585 |
這個作業的目標 | < 熟悉使用while和do-while結構解決問題。> |
學號 | <20209145> |
一、PTA實驗作業。 |
1.1.1題目:
(猜數字游戲)猜數字游戲是令游戲機隨機產生一個100以內的正整數,用戶輸入一個數對其進行猜測,需要你編寫程序自動對其與隨機產生的被猜數進行比較,並提示大了(“Too big”),還是小了(“Too small”),相等表示猜到了。如果猜到,則結束程序。程序還要求統計猜的次數,如果1次猜出該數,提示“Bingo!”;如果3次以內猜到該數,則提示“Lucky You!”;如果超過3次但是在N(>3)次以內(包括第N次)猜到該數,則提示“Good Guess!”;如果超過N次都沒有猜到,則提示“Game Over”,並結束程序。如果在到達N次之前,用戶輸入了一個負數,也輸出“Game Over”,並結束程序。
1.1.2數據處理:
數據表達:運用了整型變量x,y,N,i;x,y,N是輸入值,i是記錄循環次數。
數據處理:while i<=N&&y!=x
i <- i+1
i==N+1 等。
1.1.3 造測試數據:
輸入數據 | 輸出數據 | 說明 |
---|---|---|
1 2\1 | Bingo | 一次猜出結果 |
21 4\31\21 | Too big\Lucky You! | 第一次太大,三次內猜對 |
21 4\19-1 | Too small\Game Over | 第一次太小,有負數游戲結束 |
21 1\19\21 | Too small\Game Over | 第一次太小,在N次內沒猜對 |
(\表示換了一行)
1.1.4實驗代碼截圖:
1.1.5PTA提交列表及說明:
1.編譯錯誤:沒有定義i的初始值。
2.部分正確:沒考慮當i的值大於N時,跳出while循環,i的值是N+1,此時得到的答案為Good Guess!,而不是Game Over。
讀代碼容易看出沒有定義i;當i為N+1跳出循環后重新賦值i且不與其它值沖突(定義為負數)。
1.2.1題目:
(購物(二))用戶購買了若干個商品(商品數不超過10),現在,他告訴你每件商品的價格,你計算出這些商品的平均價格。
1.2.2數據處理:
數據表達:運用了整型變量i,n;浮點型x,sum,result;x是輸入值,i記錄商品個數,n記錄循環個數,sum記錄商品總價。
數據處理:sum <- i <- 0
for n <- 1to11
else sum <- sum+x
i <- i+1
if i==0 等。
1.2.3造測試數據:
輸入數據 | 輸出數據 | 說明 |
---|---|---|
890.78 2769.8 12300 3532.2 -1 | 4873.19 | 這些商品的平均價格為4873.19 |
100000 100000 9876.54 -1 | 69958.85 | 這些商品的平均價格為69958.85 |
10 21 11 1 2 3 4 5 6 0 -1 | 6.30 | 這些商品的平均價格為6.30 |
1.2.4實驗代碼截圖:
1.2.5 PTA提交列表及說明:
1.運行超時:當輸入-1時沒中斷循環。
2.部分正確:當一件商品也沒有時i為0,此時i不能做分母。
3.部分正確:當有10件商品時要循環輸入11次,當條件為(n=1;n<=10;i++)時只循環輸入了10次。
容易看出沒中斷問題;當i為0時重新賦值一個值;改變循環條件。
二、代碼互評。 |
同學代碼:
我的代碼:
1.同學用的是while循環,我的是for循環。
2.他定義的字符較少,並一邊定義一邊賦值。
3.他的不存在i為0的情況。
同學代碼:
我的代碼:
1.我用了switch判斷結構,他的全是if-else判斷結構。
2.他的中斷語句是“goto end”,我的是“break”。
3.他的判斷於輸出全在while結構里,我的部分在while結構里。
4.他的循環條件是輸入。
5.他的結束語句前加了end(end:return 0;)。
三、學習總結。 |
3.1 學習進度條。
周/日期 | 這周所花的時間 | 代碼行 | 學到的知識點簡介 | 目前比較迷惑的問題 |
---|---|---|---|---|
8 | 29h | 500 | 輸入、輸出函數 | |
9 | 30h | 530 | 其他類型的函數 | |
10 | 31h | 600 | for循環、if else判斷 | 數組問題 |
11 | 30h | 520 | 調用函數 | |
12 | 29h | 490 | 多分枝判斷結構if-else、字符型 | |
13 | 28h | 400 | 多分枝判斷結構switch | |
14 | 28h | 500 | 多分枝循環結構while do-while |
3.2 累積代碼行和博客字數。
時間 | 博客字數 | 代碼行數 |
---|---|---|
第八周 | 1300 | 500 |
第九周 | 1400 | 530 |
第十周 | 1600 | 600 |
第十一周 | 1500 | 520 |
第十二周 | 1500 | 490 |
第十三周 | 1520 | 400 |
第十四周 | 1520 | 500 |