C語言I博客作業07


這個作業屬於哪個課程 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 其他類型的函數 判斷語句if else
10 31h 600 for循環、if else判斷 數組問題
11 30h 520 調用函數 調用自己定義的函數
12 29h 490 多分枝判斷結構if-else、字符型 或、且運算符
13 28h 400 多分枝判斷結構switch 或、且、非的優先情況
14 28h 500 多分枝循環結構while do-while while和do-while的區別

3.2 累積代碼行和博客字數。

時間 博客字數 代碼行數
第八周 1300 500
第九周 1400 530
第十周 1600 600
第十一周 1500 520
第十二周 1500 490
第十三周 1520 400
第十四周 1520 500

3.3 學習內容總結和感悟。

隨着東西學的越多,每個人的做題風格也有了明顯的區別,每一題有多種解法。學習C語言我覺得搭積木一樣,每個語法都是積木,可以用不同的積木搭出相同的物體,所以不同的人做同樣的題,會用到不同的語法。現階段的我們可以用合適我們自己的習慣、思維的語法,但是以后我們還是要面臨追求最優解。“不積跬步無以至千里,不積小流無以成江海”,要想成為能高效的得出最優解的編程大佬,只有增加自己掌握的積木數量。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM