C語言I博客作業06


1.作業頭

這個作業屬於哪個課程 https://edu.cnblogs.com/campus/zswxy/SE2020-2
這個作業要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2020-2/homework/11553
這個作業的目標 <通過寫較長的代碼提升我們的邏輯思維和培養我們對編程的興趣,同時也會讓我們變得更加有耐心。>
學號 <20209136>

一、本周教學內容&目標

第3章 分支結構 3.3 使學生熟悉多分支結構switch語句的使用。

二、本周作業頭

這個作業屬於哪個課程 C語言程序設計II
這個作業要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2020-2/homework/11553
我在這個課程的目標是 <熟悉掌握多分支結構switch語句的使用,清楚的理解switch語句的使用邏輯。>
這個作業在哪個具體方面幫助我實現目標 <寫代碼的思路,邏輯思維,數學知識的運用>
參考文獻 <C語言程序設計>

三、本周作業

1.PTA實驗作業
2.代碼互評
3.學習總結

四、作業格式

1.PTA實驗作業
請在此處列出自己的排名圖片:

從PTA題目集中選出2個你最滿意的題目完成以下內容,選擇題目難度越大,分值越高,每題20分(每項5分),內容要求如下:

1.1題目名1: 前天是哪天

題目內容描述:
​​本題目要求讀入年、月、日,然后判斷前天日期。

1.1.1數據處理

介紹實現本題過程中,你的數據表達、數據處理是怎么做的。注意:請務必按照以下方式書寫。
數據表達:用到了year,month,day,time四個變量。year,month,day的值通過調用輸入函數獲取用戶輸入的數值再進行賦值,其屬於整型變量。time的值通過判斷每一種不同的情況后根據題目要求進行變換,例如閏年的3月1日的前天是2月28日,此時就直接將28賦值給time,而不是將time-2賦值給time,也屬於整型變量。
數據處理:用到了賦值表達式time=time-2,time=30等等,用到了多分支if-else結構。

1.1.2實驗代碼截圖

1.1.3 造測試數據

輸入數據 輸出數據 說明
2020 5 20 2020-5-18 2020年5月20日的前天是2020年5月18日
2021 3 1 2021-2-27 2021年3月1日的前天是2021年的2月27日
2018 2 20 2018-2-18 2018年2月20日的前天是2018年2月18日
1966 1 24 1966-1-22 1966年1月24日的前天是1966年1月22日
2012 1 2 2011-12-31 2012年1月2日的前天是2011年12月31日
2017 3 2 2017-2-28 2017年3月2日的前天是2017年的2月28日

1.1.4 PTA提交列表及說明

根據PTA提交列表,簡要描述調試程序碰到的問題及解決辦法。

提交列表說明:

 1.答案錯誤:首先判斷是否是閏年時,代碼if( (year%4==0 || year%100!=0)|| (year%400==0))誤用了邏輯或,導致答案錯誤。后將邏輯或改成邏輯與完成修改。
 2.答案錯誤:發現每個答案都是錯誤的,於是仔細審題將輸出語句中%d %d %d改成%d-%d-%d。
 3.部分正確:將閏年中有特殊情況的月份當成2月了,因為這是求前天,所以3月1或者3月2的前天才會涉及到2月的天數。正確修改后進行提交。
 4.部分正確:腦子一熱只在上個問題中修改了閏年中的錯誤,忘記了修改非閏年中的錯誤,正確提交后顯示答案正確。

1.2題目名2:計算天數

題目內容描述:
本題要求編寫程序計算某年某月某日是該年中的第幾天。
輸入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)給出日期。注意:閏年的判別條件是該年年份能被4整除但不能被100整除、或者能被400整除。閏年的2月有29天。

1.2.1數據處理

介紹實現本題過程中,你的數據表達、數據處理是怎么做的。注意:請務必按照以下方式書寫。
數據表達:用到了year,month,day,number,i,s這六個變量。number的值根據判斷后的情況再被賦相應的值,四種情況,number=30,number=31,number=29,number=28其屬於整型變量。year,month,day的值通過調用輸入函數獲取用戶輸入的數值再進行賦值,其屬於整型變量。i與s開始就分別被1與0賦值,不過i在后面的循環中依次遞增1,其都屬於整型變量。
數據處理:用到了賦值表達式s=s+number,number=30等。用到了if-else分支結構,多分支結構switch語句,while循環語句。

1.2.2實驗代碼截圖

1.2.3 造測試數據

輸入數據 輸出數據 說明
2001/04/19 109 年份為非閏年2月有28天,結果是該年的第109天。
2520/05/20 141 此年份為閏年2月有29天,結果是該年的第141天。
1999/11/26 330 年份為非閏年2月有28天,結果是該年的第330天。
1583/07/14 195 年份為非閏年2月有28天,結果是該年的第195天。
2007/10/08 281 年份為非閏年2月有28天,結果是該年的第281天。
2020/04/19 110 此年份為閏年2月有28天,結果是該年的第110天。
2019/12/09 343 年份為非閏年2月有28天,結果是該年的第343天。

1.2.4 PTA提交列表及說明

根據PTA提交列表,簡要描述調試程序碰到的問題及解決辦法。

提交列表說明:

 1.部分正確:第二個while循環體中丟了i++導致非閏年中的計算出錯,重新修改后再次提交。
 2.編譯錯誤:修改過程中不小心刪去了引號和括號導致編譯錯誤,正確添加后再提交顯示答案正確。

2.代碼互評

同學代碼截圖

自己代碼截圖

1.同學的代碼只定義了較少的變量,而我定義了大量的變量,相比較我的代碼運算速度慢。
2.同學的代碼使用了定義函數並調用函數的方法還使用了結構數組的方法解題,而我使用的是while循環里面再加switch語句的方法。
3.同學的代碼用了自學的知識,代碼量僅有25行,比我的更簡單明了。

同學代碼截圖

自己代碼截圖

1.同學的代碼定義了六個變量,其中簡化了變量名,在進行邏輯判斷時比較清楚可讀性較強。
2.同學的代碼很簡單的就把題目做出來了,邏輯判斷非常合理,而我的代碼冗長復雜還浪費了大量的時間。相比較可讀性差,運行速度慢。

二.學習進度條

周/日期 代碼行 這周所花的時間 學到的知識點簡介 目前比較疑惑的問題
第八周10.19-10.25 480 23小時 調用輸入輸出函數,輸出任意的字符串。 輸入輸出格式常沒有與題目一致
第九周10.26-11.01 599 33小時 數的類型,定義變量時要先考慮清楚。 數據溢出和負數的浮點型
第十周11.02-11.08 519 27小時 for循環語句,if的判斷語句。 多次循環與循環體中再添加變量賦值並再循環
第十一周11.09-11.15 520 20小時 定義函數,調用函數 調用函數和定義函數易將變量弄混淆
第十二周11.16-11.22 550 28小時 多分支結構、字符型數據類型和邏輯運算符。 多分支結構容易弄錯,邏輯運算符使用不熟練
第十三周11.23-11.29 540 30小時 多分支結構switch語句 switch語句使用不熟練,容易出現漏掉符號的情況
3.2 累積代碼行和博客字數

3.3 學習內容總結和感悟

3.3.1 學習內容總結

感悟:

1.這周新學了多分支結構switch語句,上課時老師的講課速度還是挺快的,我還在寫上一道題目時老師就已經講switch了,課后還是有點暈暈的,所以我在課后都要將上課講到的代碼都打一遍,因為只有這樣才能印象深刻!
2.在專業課的學習過程中,最重要的還是自學,我們在做題時感到很多局限性,因為我們現在掌握的知識太少,做一些題目需要寫六十多行代碼,但如果自己提前去預習就可以用更好的方法來解題。
3.PTA上的作業還是越來越深入,越來越有意思,這次同學們的做題方法還是呈現百花齊放的局面,這是非常好的局面,希望同學們能保持下去!
4.最后還是強調耐心這一點, 這次作業讓我發現了發際線與耐心成正比這個規律,因為我在寫第四題的時候被月份的特殊情況困住了,足足有好幾個小時感覺特別煩,在這期間我一直在抓頭發,所以說寫代碼要有耐心一點千萬不要煩躁。


免責聲明!

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



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