作業頭:
這個作業屬於哪個課程 | https://edu.cnblogs.com/campus/zswxy/SE2020-1 |
---|---|
這個作業要求在哪里 | https://edu.cnblogs.com/campus/zswxy/SE2020-1/homework/11584 |
這個作業的目標 | 學會使用do-while語句,while語句 |
學號 | 20209096 |
這個作業屬於那個課程 | C語言程序設計II |
---|---|
這個作業要求在哪里 | https://edu.cnblogs.com/campus/zswxy/SE2020-1/homework/11584 |
我在這個課程的目標是 | 自己能更好的學習do-while語句,有更好學習成果 |
這個作業在那個具體方面幫助我實現目標 | 能然我更好的學習分while語句和do-while語句 |
參考文獻 | C語言程序設計,C primer plus |
1.PTA實驗作業(20分/題)
自己的排名圖片:
1.1 題目名
日本數學家古角靜夫研究自然數時,發現一個有趣現象:“如果是個偶數就除2,如果是奇數就乘以3加1”,經過有限個這樣的處理步驟,最后一定能得到1. 任意輸入一個自然數,給出得到結果1的運算過程。
1.1.1數據處理
數據表達:運用了n,m兩個變量,都是整數型變量。
數據處理:首先輸入兩個變量一定要n不等於1while(m != 1)
然后再判斷奇數和偶數 if(n % 2 == 0)
{
m = n / 2;
printf("%d/2=%d\n", n, m);
}
這是偶數
else
{
m = n * 3 + 1;
printf("%d*3+1=%d\n", n, m);}
並進行運算,最后輸出答案。
表達式和運算符:主要用了賦值表達式和算術表達式。
1.1.2實驗代碼截圖
1.1.3 造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
5 | 5*3+1=16,16/2=8,8/2=4,4/2=2,2/2=1 | 正確 |
6 | 6/2=3,33+1=10,10/2=5,53+1=16,16/2=8,8/2=4,4/2=2,2/2=1 | 測試值 |
1.1.4 PTA提交列表及說明
提交列表說明:
多種錯誤: 其實就是包含‘編譯錯誤’和‘運行超時’
答案錯誤: 這其實是最后一個錯誤了,我把n m 弄反了。
部分正確:我最開始用的是for循環語句但是出現了一點錯誤,所以我才用的while語句。
1.2 題目2
用戶購買了若干個商品(商品數不超過10),現在,他告訴你每件商品的價格,你計算出這些商品的平均價格。
1.2.1 數據處理
數據表達:用了a,b,num 變量;它們都屬於雙精度浮點型變量。
數據處理:最開始輸入a,b,num變量
然后進行while循環
b=a+b;
num++;
if語句是用來限制商品的數目的
if(num>=10)
{
num=10;
}
表達式和運算符:主要用了賦值表達式和算術表達式。
1.2.2 實驗代碼截圖
1.2.3 造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
890.78 2769.8 12300 3532.2 -1 | 4873.19 | 答案正確 |
890.78 2769.8 16300 3532.2 -1 | 5873.20 | 測試數據 |
1.2.4 PTA提交列表及說明
提交列表說明:
編譯錯誤:最多的還是一些基礎問題,如‘&’忘記敲上去了還有‘;’符號在最后沒寫等等。
部分正確:那個商品不超過十個我沒有考慮到。
答案錯誤:在while語句中我沒有寫scanf("%lf",&a);這個表達式。
2.代碼互評(5分)
同學a:
同學b:
自己的:
(1)同學a和同學b的代碼在while語句括號中用的是‘n!=-1’而我用的是大於0相對來說是他比較嚴謹。
(2)我們三個的代碼都有不同的地方,但是同學b的代碼更簡便,她的這個表達式scanf("%lf",&a);用在了if語句的前面。
(3)在同學a的代碼最后if語句里的num=1和a=0是最直觀的讓我們看懂,我和另外一位同學還是有一點轉彎的,他的這一個代碼是非常值得我們學習的。
3.學習總結
3.1 學習進度條
周\日期 | 這周所花的時間 | 代碼行 | 學到的知識點簡介 | 目前比較迷惑的問題 |
---|---|---|---|---|
第八周/10.19~10.25 | 12小時 | 100行 | 學會了使用基本的c語言和markdown語法。 | 當時我對所有的都不會,如:半角和全角的區別 |
第九周/10.26~11.1 | 10小時 | 236行 | 知道了常量,變量,和數據類型的定義和使用算數運算和賦值運算 | 一些c語言的語法還不清楚 |
第十周/11.2~11.8 | 14小時 | 340行 | 學會了使用for循環語句 | 一些基本數學函數都不會使用 |
第十一周/11.9~11.15 | 18小時 | 354行 | 學會了調用函數 | 但是還有一點不能理解它的含義 |
第十二周/11.17~11.21 | 13小時 | 319行 | 學會了如何使用分支結構 | 就是那個計算器不知道如何編程 |
第十三周/11.24~11.28 | 11小時 | 400行 | 學會了switch語句的應用和邏輯運算符的使用 | 就是switch語句用的不熟練,缺乏經驗和實踐 |
第十四周/12.1~12.5 | 12.3小時 | 365行 | 學會了do-while語句和while語句的基本運用 | 最主要的是我上課的時候有點走神,導致do-while語句有點模糊不懂 |
3.2 累積代碼行和博客字數
3.3 學習內容總結和感悟
3.3.1 學習內容總結
3.3.2 學習體會
在學校學習了7周了,同時也經過了7周的c語言學習基本上已經可以自己敲一些簡單的代碼了,在學這個的同時我的興趣被完全的激發了出來,C語言的學習不僅改變了我的學習態度,同時也解決了我的孤立的性格。它讓我接觸到了更多的學長,向他們學習了更多的知識。在第十四周的學習中我明顯的感覺到我的提升,但同樣的大量的問題也隨之而來,但我經過向百度和學長的請教,我也學到了很多,希望我繼續堅持下去。