這個作業屬於那個課程 | C語言程序設計II |
---|---|
這個作業要求在哪里 | C語言I作業07 |
我在這個課程的目標是 | 熟練運算符的使用順序、字符的含義,switch語句。 |
這個作業在那個具體方面幫助我實現目標 | 在PTA的練習中,和對知識的自我總結上 |
參考文獻 | 集美大學林麗老師、百度文庫、C語言程序設計 |
1.PTA實驗作業
1.1 題目名1
計算天數
本題要求編寫程序計算某年某月某日是該年中的第幾天。
輸入格式:
輸入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)給出日期。注意:閏年的判別條件是該年年份能被4整除但不能被100整除、或者能被400整除。閏年的2月有29天。
輸出格式:
在一行輸出日期是該年中的第幾天。
1.1.1數據處理
{
定義 年 月 日
輸入年 月 日;
如果該年年份能被4整除但不能被100整除、或者能被400整除,為閏年
{
選擇月份
{
選擇月份后,天數就等於此月份以前的月份中的所有天數之和加上輸入的“日”
}
}
否則
{
選擇月份
{
選擇月份后,天數就等於此月份以前的月份中的所有天數之和加上輸入的“日”
}
}
輸出日期
結束
}
1.1.2實驗代碼截圖
1.1.3 造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
2004/04/26 | 117 | 2004為閏年 |
2001/04/26 | 116 | 2001不是閏年,所以少一天 |
2008/09/25 | 269 | 2008為閏年 |
1.1.4 PTA提交列表及說明
* 答案錯誤:未注意輸出位數,導致答案錯,后來問同學解決
* 答案錯誤:case與后面的數字間沒打空格,看來錯誤提示發現的
* 答案錯誤:單詞打錯了,看錯誤提示發現的
2.2題目名2
整數的分類處理
給定 N 個正整數,要求你從中得到下列三種計算結果:
A1 = 能被 3 整除的最大整數
A2 = 存在整數 K 使之可以表示為 3K+1 的整數的個數
A3 = 存在整數 K 使之可以表示為 3K+2 的所有整數的平均值(精確到小數點后 1 位)
輸入格式:
輸入首先在第一行給出一個正整數 N,隨后一行給出 N 個正整數。所有數字都不超過 100,同行數字以空格分隔。
輸出格式:
在一行中順序輸出 A1、A2、A3的值,其間以 1 個空格分隔。如果某個數字不存在,則對應輸出NONE。
1.1.1數據處理
{
定義A1(A),A2(B),A2(C),正整數個數N,i(用於循環),數據s,余數b等的類型
輸入正整數個數N
使用循環語句for(從i=1開始,i的值一直累加到i=N為止)
{
輸入數據
余數=輸入的數據除以3
選擇余數
{
余數為0 :
如果數據為能被 3 整除的最大整數
A=該數據的值
跳出該語句
余數為1:
B=累加的數據的個數;
跳出該語句
余數為2:
將數據的值累加;
將符合該條件數據個數累加;
平均數=數據的值的和/數據個數
跳出該語句
}
}
如果A=-1
{
輸出NONE
}
否則
{
輸出A的值
}
如果B=0
{
輸出NONE
}
否則
{
輸出B的值
}
如果s=0並且X=0
{
輸出NONE
}
否則
{
輸出C的值
}
結束
}
1.1.2實驗代碼截圖
1.1.3 造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
5, 5 4 6 2 1 | 6 2 3.5 | 被整除的只有6,符合3k+1的只有1,4 |
4, 6 4 1 8 | 6 2 8.0 | 平均數為浮點型變量 |
6,3 3 3 3 3 3 | 3 NONE NONE | 沒有符合3k+1,3k+2的數字 |
1.1.4 PTA提交列表及說明
*格式錯誤:{位置打錯了,看錯誤提示發現的
*部分正確:沒有對C進行賦值,看錯誤提示發現的
*部分正確:NONE后面沒打空格,問同學解決的
2.代碼互評
自己代碼:
同學代碼:
* 同學用了數組,我用的是常規方法
* 同學的case 10:后為空白,而我加了個A++;break; 相比之下同學的要簡潔些
自己代碼:
同學代碼:
* 同學用了數組的方法,而我用的常規方法
* 同學代碼中沒有case 0 使用了default,而我一直是case語句
3.學習總結
3.1 學習進度條
周/日期|這周所花的時間|代碼行|學到的知識點簡介|目前比較困惑的問題
----------|---------------------|----------------------------------|--------------------------
第六周|4天|20|用 MinGW-w64 來編譯C程序,學習編程計算溫度的轉化|無
第七周|3天|99|學習用if,else等語句編譯程序|無
第八周|2天|75|學習使用循環語句,用for來編譯程序|無
第九周|3天|94|學習各種使用函數eg:fact(i)|for循環與while循環的區別
第十周|2天|213|學習使用多種分支結構|對分支結構中for循環有點迷糊不太能理解
第十一周|1天|135|學習使用switch語句|無
3.2 累積代碼行和博客字數
3.3 學習內容總結和感悟
3.3.1 學習內容總結
3.3.2 學習體會
這周新學習了switch語句,一開始我不是很明白switch語句與if-else語句的關系。后來在百度上查了一下。解釋如下:如果純粹比較數字或字符,建議使用switch,因為它只會在一開始的switch括號中取出變量值一次,然后將這個值與下面所設定的case比較,但如果使用if,每次遇到條件時,都要取出變量值。在隨后的PTA練習中我逐漸熟悉了這個語句。在做博客園的總結中,我能更深入的思考學過的知識點,並且提高了自己的總結能力。在打字,markdowm語法的使用也很熟悉,PTA的難度、行數也在逐漸提高,代表着我需要更加努力!