C語言I博客作業07


這個作業屬於那個課程 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的難度、行數也在逐漸提高,代表着我需要更加努力!


免責聲明!

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



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