1.PTA實驗作業(20分/題)

1.1 計算天數
本題要求編寫程序計算某年某月某日是該年中的第幾天。
輸入格式:
輸入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)給出日期。注意:閏年的判別條件是該年年份能被4整除但不能被100整除、或者能被400整除。閏年的2月有29天。
輸出格式:
在一行輸出日期是該年中的第幾天。
輸入樣例1:
2009/03/02
輸出樣例1:
61
輸入樣例2:
2000/03/02
輸出樣例2:
62
1.1.1數據處理
數據表達:所用變量:year,month,day,a,b,c,y;這些變量的值的來源:year,month,day是用戶輸入的值;a,b,c分別是year/4,year/100,year/400取余的值,y是根據a,b,c,month的
值以及表達式得出來的;類型:整型(int)。
數據處理:數據用到的表達式:a = year % 4,b = year % 100,c = year % 400,:y = day,y = 31 + day,y = 60 + day,y = 91 + day,y = 121 + day,y = 152 + day,y =
182 + day,y = 213 + day,y = 244 + day,y = 274 + day,case 11:y = 305 + day,y = 335 + day,y = day,y = 31 + day,y = 59 + day,y = 90 + day,y = 120 + day,y
= 151 + day,y = 181 + day,y = 212 + day,y = 243 + day,y = 273 + day,y = 304 + day,y = 334 + day;流程結構:選擇結構。
1.1.2實驗代碼截圖

1.1.3 造測試數據
輸入數據 |
輸出數據 |
說明 |
2009/03/02 |
61 |
該年年份能被4整除,不能被100和400整除 |
2000/03/02 |
62 |
該年年份能被4,100和400整除 |
2006/05/05 |
125 |
該年年份不能被4,100和400整除 |
2020/11/25 |
330 |
該年年份能被4整除,不能被100和400整除 |
1900/06/09 |
160 |
該年年份能被4和100整除,不能被400整除 |
1.1.4 PTA提交列表及說明

1.編譯錯誤:switch語句中case后的符號錯誤;
解決辦法:剛開始還沒發現,仔細看書上的switch語句后發現case后的符號不是‘ ; ’而是‘ : ’,改完后又出現了部分錯誤;
2.部分錯誤:if語句的判斷符號錯誤;
解決辦法:仔細檢查一遍后,發現在判斷相等時,將‘==’寫成了‘=’,后將其改正過來了,提交后答案顯示正確。
1.2 多分支表達-倍數問題
1.2.1 數據處理
數據表達:所用變量:A,x,y,z,a;這些變量的值的來源:A是用戶輸入的值;x,y,z分別是A/3,A/5,A/15取余的值;類型:整型(int)。
數據處理:數據用到的表達式:x = A % 3,y = A % 5,z = A % 15;流程結構:選擇結構。
1.2.2 實驗代碼截圖

1.2.3 造測試數據
輸入數據 |
輸出數據 |
說明 |
18 |
3 |
該數是3的倍數但不是5的倍數 |
20 |
2 |
該數是5的倍數但不是的倍數 |
13 |
13 |
該數小於15,且既不是3的倍數也不是5的倍數 |
26 |
11 |
該數大於15,且既不是3的倍數也不是5的倍數 |
-30 |
(沒有任何輸出) |
該數不是正整數,且既是3的倍數又是5的倍數 |
1.2.4 PTA提交列表及說明

1.部分錯誤:在if語句中多了符號;
解決辦法:這個錯誤找了很久,最后卻發現是一個很小的錯誤,if后的括號里多打了引號,當時因為那個括號里的和其他括號里的顏色標記不同就感覺奇怪,看了很久后才發現了問題,
改正后,顯示答案正確。
2.代碼互評(5分)
尹志成同學代碼截圖

鄭九龍同學代碼截圖

自己代碼截圖

1.尹志成同學解題時先是運用switch語句,再運用if-else語句來解題的,使后半部分簡便了許多,而我的大部分使用switch語句,表達式太多;
2.鄭九龍同學運用了if-else語句來解題,他所寫的使代碼簡便了許多,在考慮問題方面也更全面,我所寫的明顯長了一大串;
3.我運用了if-else語句和switch語句來解題的,我所寫的有一部分再改變一下或換一種方式解題應該可以更簡便些。
3.學習總結(15分)
3.1 學習進度條(5分)
周/日期 |
這周所花的時間 |
代碼行 |
學到的知識點簡介 |
目前比較迷惑的問題 |
第三周 |
4天 |
156 |
for語句 |
在綜合表達式中,不知道為什么不能用"[ ]" |
第四周 |
2天 |
169 |
函數的定義和調用 |
函數的定義和調用的格式不太懂 |
第五周 |
3天 |
192 |
分支結構if-else語句和字符型(char) |
有同學作業中運用到的沒學過的知識不太理解 |
第六周 |
3天 |
278 |
選擇結構中的switch語句 |
解題時不能很快判斷出用if-else語句好些還是用switch語句好些 |
3.2 累積代碼行和博客字數(5分)
時間 |
博客字數 |
代碼行數 |
第一周 |
638 |
12 |
第二周 |
562 |
97 |
第三周 |
2058 |
156 |
第四周 |
1737 |
169 |
第五周 |
2520 |
192 |
第六周 |
1780 |
278 |

3.3 學習內容總結和感悟(5分)
3.3.1 學習內容總結

3.3.2 學習體會
1、這周學了選擇結構中的switch語句,剛開始在做題的時候使用時,容易將case后的冒號打成分號;
2、在寫代碼的時候,有幾個地方容易出錯,比如在判斷時將==打成= ;
3、在之后的學習過程中,吸取之前出現的錯誤,多練多想,多學習他人優秀的解題方法。