| 這個作業屬於哪個課程 | C語言程序設計II |
|---|---|
| 這個作業屬於哪個課程 | https://edu.cnblogs.com/campus/zswxy/CST2020-1/ |
| 這個作標業要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-1/homework/11556 |
| 我在這個課程的目標是 | 學習並熟練switch-case,if-else |
| 這個作業在那個具體方面幫助我實現目標 | 學習到了同學的代碼,對switch-case較熟練 |
| 參考文獻 | c語言程序設計(第三版) |
| 學號 | 20208950 |
1.PTA實驗作業

1.1 前天是哪天
題目內容描述:本題目要求讀入年、月、日,然后判斷前天日期。
輸入格式:
在一行中輸入年、月、日。(日期為有效日期)
輸出格式:
輸出前天日期,格式形如2020-10-16
1.1.1數據處理
數據表達:定義整型變量y,m,d。輸入三者的值,用if-else與switch-case分別判定出現的各種情況
數據處理:表達式:賦值表達式,算術表達式,關系表達式。
流程結構:定義整型變量y,m,d。輸入三者的值。
if判斷if(d>2),滿足條件直接輸出printf("%d-%d-%d",y,m,d-2)。
switch-case與輸入的m作比較,分別比較出1到12月的情況
中間用if-else判斷2月是否閏年if(y % 4 == 0 && y % 100 != 0 || y % 400 == 0)
輸出
1.1.2實驗代截圖

1.1.3造測試數據
| 輸入數據 | 輸出數據 | 說明 |
|---|---|---|
| 2020 10 16 | 2020-10-14 | 16號的前一天是14號 |
| 2020 1 2 | 2019-12-31 | 1月2號的前一天是12月31號 |
| 2020 3 2 | 2020-2-29 | 3月2號的前一天是2月29號 |
1.1.4 PTA提交列表及說明

提交列表說明:
編譯錯誤:忘寫break。
答案錯誤:算錯數。
1.2 題目2
題目內容描述:鍵盤輸入1個正的整數A,如果A是3的倍數但不是5的倍數,則輸出A除以5的余數。如果A是5的倍數但是不是3的倍數,則輸出A除以3的余數。如果A既不是5的倍數但也不是3的倍數,輸出A除以15的余數
輸入格式:
1個正整數
輸出格式:
如果是3的倍數但不是5的倍數,則輸出A除以5的余數。 如果A是5的倍數但是不是3的倍數,則輸出A除以3的余數。 如果A既不是5的倍數但也不是3的倍數,輸出A除以15的余數。 如果A不是正整數,沒有任何輸出。
1.2.1 數據處理
數據表達:定義整型變量A與雙精度浮點型變量sum,輸入A的值,if-else判斷A的值與3,5的關系,最后輸出
數據處理:表達式:賦值表達式,算數表達式,邏輯表達式
流程結構:定義變量int A;double sum=0;
輸入A的值
if-else判斷if(A%3==0&&A%5!=0) if(A%5==0&&A%3!=0) if(A%5!=0&&A%3!=0
輸出
1.2.2 實驗代碼截圖

1.2.3 造測試數據
| 輸入數據 | 輸出數據 | 說明 |
|---|---|---|
| 18 | 3 | 不是三和五的倍數 ,除15余數 |
| 9 | 4 | 是三的倍數,9除15 |
| 20 | 2 | 是五的倍數,20除3 |
1.2.4 PTA提交列表及說明

提交列表說明:
部分正確:算數運算符寫成賦值運算符
編譯錯誤:沒寫printf
2.代碼互評
同學代碼截圖


我的代碼截圖



對比:我選的是兩段不同的代碼
1,代碼一中兩代碼的區別是,我用的是switch-case,同學用的是if-else,就這個題目而言,同學用的這個方法更加簡便。兩種方法都可掌握
2,代碼二中,同學用的是一維數組,我用的是switch-case,相比之下,同學的方法值得學習
3.學習總結
3.1 學習進度條

3.2 累積代碼行和博客字數
| 時間 | 字數 | 代碼行數 |
|---|---|---|
| 第八周 | 1010 | 15 |
| 第九周 | 1643 | 34 |
| 第十周 | 2673 | 102 |
| 第十一周 | 3566 | 200 |
| 第十二周 | 3679 | 353 |
| 第十三周 | 4503 | 456 |

3.3 學習內容總結和感悟
3.3.1學習內容總結

3.3.2學習體會
通過進一步學習,一些細節問題能抓住不犯錯誤.在課堂上,經過老師的指導,腦子里的樹也開出了枝丫.
不過,在定義函數這一知識中還是有很多問題還有switch-case這方面也多加練習。
