一、表格
| 問題 | 答案 |
|---|---|
| 這個作業屬於那個課程 | C語言程序設計II |
| 這個作業要在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/9885 |
| 我在這個課程的目標是 | 深入了解C語言,爭取掌握更多的數據類型及結構,熟練地編譯有效代碼 |
| 這個作業在那個具體方面幫助我實現目標 | 熟練掌握if語句for語句的嵌套,加強解決問題的邏輯思維 |
| 參考文獻 | C語言程序設計、百度 |
二、本周作業
1. PTA實驗作業

1.1 題目名1
7-3 計算火車運行時間 (15 分)
本題要求根據火車的出發時間和達到時間,編寫程序計算整個旅途所用的時間。
輸入格式:
輸入在一行中給出2個4位正整數,其間以空格分隔,分別表示火車的出發時間和到達時間。每個時間的格式為2位小時數(00-23)和2位分鍾數(00-59),假設出發和到達在同一天內。
輸出格式:
在一行輸出該旅途所用的時間,格式為“hh:mm”,其中hh為2位小時數、mm為2位分鍾數。
輸入樣例:
1201 1530
輸出樣例:
03:29
1.1.1 數據處理
數據表達:使用了8個整型變量int(m,n,a,b,c,d,x,y),其中m,n是輸入的兩個四位整數、a,b分別是第一個整數的前兩位和后兩位、c,d是第二個整數的前兩位和后兩位、x,y分別是這兩個整數前兩位和后兩位之差。
數據處理:用到了if-else結構、表達式用到了賦值運算符、關系運算符。
1.1.2 實驗代碼截圖

1.1.3 造測試數據
| 輸入 | 輸出 | 說明 |
|---|---|---|
| 1210 1513 | 03:29 | 題目數據 |
| 0559 1020 | 04:21 | 需要借位 |
| 0025 0054 | 00:29 | 小時為0 |
1.1.4 PTA提交列表及說明

部分正確:沒有考慮到分鍾借位的問題。
部分正確:分鍾借位時,表達式沒寫好,分鍾與小時之間進制為60。
部分正確:沒有用到%02d,導致沒有相減為個位數時沒有在前一位補0。
1.2 題目名2
7-5 輸出閏年 (15 分)
輸出21世紀中截止某個年份以來的所有閏年年份。注意:閏年的判別條件是該年年份能被4整除但不能被100整除、或者能被400整除。
輸入格式:
輸入在一行中給出21世紀的某個截止年份。
輸出格式:
逐行輸出滿足條件的所有閏年年份,即每個年份占一行。輸入若非21世紀的年份則輸出"Invalid year!"。若不存在任何閏年,則輸出“None”。
輸入樣例1:
2048
輸出樣例1:
2004
2008
2012
2016
2020
2024
2028
2032
2036
2040
2044
2048
輸入樣例2:
2000
輸出樣例2:
Invalid year!
1.2.1 數據處理
數據表達:整型變量int(n,i,count)、其中n是輸入的年份、i是用來控制循環的,給其賦值為2001、count代表符合循環條件的總數,初始值賦為0。
數據處理:這里運用了for語句嵌套if-else語句、表達式用了賦值運算符、關系運算符、邏輯運算符。
1.2.2 實驗代碼截圖

1.2.3 造測試數據
| 輸入 | 輸出 | 說明 |
|---|---|---|
| 2000 | Invalid year! | 非21世紀 |
| 2003 | None | 不存在閏年 |
| 2010 | 2004 2008 | 存在閏年 |
1.2.4 PTA提交列表及說明

部分正確:沒有用\n,導致輸出年份成一行出來,而沒有分行排列。
2. 代碼互評
同學代碼①

自己代碼①

- 從代碼行數上看,同學代碼很復雜,我的比較簡單。
- 雖然該同學代碼很復雜,但是他是使用了上周學習的自定義函數,雖然在這道題上沒有必要,但這樣復習了學過的知識。
- 可以看出該同學是有函數的意識的,這點是我所沒有的。要向這位同學學習。
同學代碼(陳藝洋)②

自己代碼②

- 同學代碼比較簡單,我的代碼比同學代碼都多了一步。
- 同學的代碼在輸出上多了一個變量,她設了x,y兩個變量,我的直接用總數減count。
- 我的代碼在最后加了一個輸入總數為0的情況,同學卻沒有。但是她用了else來表示另一種,我的直接省略了else。
3. 學習總結
3.1 學習進度條
| 周/日期 | 這周所花的時間 | 代碼行 | 學到的知識點簡介 | 目前比較困惑的問題 |
|---|---|---|---|---|
| 1/9-21 | 2天 | 30 | 初步接觸編程,學習編譯Hello,World! | 無 |
| 2/9-30 | 2天 | 20 | 學習了浮點型變量,及溫度轉換 | 無 |
| 3/9-15 | 3天 | 76 | 使用分段函數了解到if-else語句以及數據類型 | 對於定義數值還是不太清楚 |
| 4/10-16 | 3天 | 100 | for語句 | for循環進行中不清楚循環的細節 |
| 5/10-24 | 3 天 | 155 | 學習到了自定義函數 | 自定義函數的具體定義過程,實參形參有些迷惑 |
| 6/11-1 | 3天 | 250 | 學習使用if-else與for語句的嵌套,初步了解了字符型變量 | 對於字符型變量不是很懂,不明白其作用 |
3.2 累計代碼行和博客字數

3.3 學習內容總結

3.4 學習體會
- 這周學習了if-else和for語句的嵌套使用。還學習了字符型變量,這是不同於之前學習的整型變量和浮點型變量,還有邏輯運算符。
- 對於if和for這部分內容有點像是之前內容的延伸,感覺掌握的還可以,但是對於字符型變量就不是很懂,只知道類型名char,用%c來接受數據不能明白它是干什莫用的。邏輯運算符之前也接觸過,內容 簡單(&&表示並且、||表示或者、!表示非),但是在程序中就有點看不懂了,就像這次PTA作業的填空題,有幾個題不是很明白它的意思。
- 經過這幾周的學習,感覺學的越多就越難掌握,學習內容也在不斷加深難度,自己付出的還是不夠。現在不僅要加強代碼行數了還要增強自己的邏輯思維能力,在做題的時候就感覺到思考的重要性,學而不思則罔啊。
