C語言I博客做業07

問題 回答
這個做業屬於那個課程 C語言程序設計II
這個做業要求在哪裏 C語言I做業07
我在這個課程的目標是 本身設計一個小遊戲
這個做業在那個具體方面幫助我實現目標 在PTA題目中屢次使用switch語句
參考文獻 C語言程序設計,百度文獻 僞代碼1 僞代碼2

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

1.1計算天數 (15 分)

本題要求編寫程序計算某年某月某日是該年中的第幾天。

輸入格式:
輸入在一行中按照格式「yyyy/mm/dd」(即「年/月/日」)給出日期。注意:閏年的判別條件是該年年份能被4整除但不能被100整除、或者能被400整除。閏年的2月有29天。學習

輸出格式:
在一行輸出日期是該年中的第幾天。測試

輸入樣例1:.net

2009/03/02設計

輸出樣例1:3d

61code

輸入樣例2:htm

2000/03/02blog

輸出樣例2:遊戲

62事件

1.1.1數據處理

  • 數據表達:運用到了整型變量: year, month, day。
  • 數據處理:
#include <stdio.h>

int main()

{

  int year,month,day;

   輸入年月日 

  if(year%4==0&&year%100!=0||year%400==0)/* 判斷是否是閏年*/

  {                                                  /* 是閏年*/

​         switch(month)

​        {

​            case 1:printf("%d\n",day);break;         /* 閏年1月*/

​            case 2:printf("%d\n",31+day);break;      /* 閏年2月*/

​            case 3:printf("%d\n",60+day);break;      /* 閏年3月*/

​            case 4:printf("%d\n",91+day);break;      /* 閏年4月*/

​            case 5:printf("%d\n",121+day);break;     /* 閏年5月*/

​            case 6:printf("%d\n",152+day);break;     /* 閏年6月*/

​            case 7:printf("%d\n",182+day);break;     /* 閏年7月*/

​            case 8:printf("%d\n",213+day);break;     /* 閏年8月*/

​            case 9:printf("%d\n",244+day);break;     /* 閏年9月*/

​            case 10:printf("%d\n",274+day);break;    /* 閏年0月*/

​            case 11:printf("%d\n",305+day);break;    /* 閏年11月*/

​            case 12:printf("%d\n",335+day);break;    /* 閏年12月*/

​        }

  }

  else                                              /* 不是閏年*/

  {

​        switch(month)

​        {

​            case 1:printf("%d\n",day);break;           /* 平年1月*/

​            case 2:printf("%d\n",31+day);break;        /* 平年2月*/

​            case 3:printf("%d\n",59+day);break;        /* 平年3月*/

​            case 4:printf("%d\n",90+day);break;        /* 平年4月*/

​            case 5:printf("%d\n",120+day);break;       /* 平年5月*/

​            case 6:printf("%d\n",151+day);break;      /* 平年6月*/

​            case 7:printf("%d\n",181+day);break;      /* 平年7月*/

​            case 8:printf("%d\n",212+day);break;      /* 平年8月*/

​            case 9:printf("%d\n",243+day);break;      /* 平年9月*/

​            case 10:printf("%d\n",273+day);break;     /* 平年10月*/

​            case 11:printf("%d\n",304+day);break;     /* 平年11月*/

​            case 12:printf("%d\n",334+day);break;     /* 平年12月*/

​        }

​    }

​    return 0;

}

1.1.2實驗代碼截圖


1.1.3 造測試數據

輸入數據 輸出數據 說明
2019/11/06 310 今日日期,31+28+31+30+31+30+31+31+30+31+6=310
2018/03/05 64 非閏年,31+28+5=64
2004/05/05 126 閏年,31+29+31+30+5=126

1.1.4 PTA提交列表及說明

提交列表說明:
答案錯誤:輸入格式錯了,忘記在%d之間加。

1.2統計學生成績 (15 分)

本題要求編寫程序讀入N個學生的百分制成績,統計五分製成績的分佈。百分制成績到五分製成績的轉換規則:

大於等於90分爲A;
小於90且大於等於80爲B;
小於80且大於等於70爲C;
小於70且大於等於60爲D;
小於60爲E。
輸入格式:
輸入在第一行中給出一個正整數N(≤1000),即學生人數;第二行中給出N個學生的百分制成績,其間以空格分隔。

輸出格式:
在一行中輸出A、B、C、D、E對應的五分製成績的人數分佈,數字間以空格分隔,行末不得有多餘空格。

輸入樣例:

7
77 54 92 73 60 65 69

輸出樣例:

1 0 2 3 1

1.2.1 數據處理

  • 數據表達:運用了九個整型變量:n,i,grade,w,A,B,C,D,E,grade爲分數。
  • 數據處理:
#include <stdio.h>
int main()
{
    int n,i,grade,w;
    int A←0,B←0,C←0,D←0,E←0;
    輸入學生人數
    if(n>0)       /*學生人數大於0時*/
    {
        for(i=1;i<=n;i++)
        {
            scanf("%d",&grade);/*輸入學生成績*/
            w=grade/10;                /*取分數第一位數以便事件的常量表達*/
            switch(w)
            {
                case 10:A++;break;  /*大於等於90分*/
                case 9:A++;break;   /*大於等於90分*/
                case 8:B++;break;   /*小於90且大於等於80*/
                case 7:C++;break;   /*小於80且大於等於70*/
                case 6:D++;break;   /*小於70且大於等於60*/
                default:E++;break;  /*小於60*/
            }
        }
    }
    printf("%d %d %d %d %d",A,B,C,D,E);
    return 0;
}

1.2.2 實驗代碼截圖

1.2.3 造測試數據

輸入數據 輸出數據 說明
5\n 55 66 77 88 99 1 1 1 1 1 分別爲A B C D E
5\n 96 100 88 76 0 2 1 1 0 1 分別爲A B C D E
6\n 23 61 70 80 90 60 1 1 1 2 1 臨界值

1.2.4 PTA提交列表及說明

答案錯誤: scanf("%d",& grade);輸出放在for語句前,沒能實現循環。

2.代碼互評(5分)

同窗代碼截圖

本身代碼截圖


1,咱們變量不同,他他變量多幾個,個人少幾個。
2咱們代碼差異很大,他的是在for語句中循環,個人剛是把十個月都列出來了,我這方法比較笨,一看他代碼頓悟了,本身當時怎麼想到。
3,個人代碼行比他的長多了,他的方法值得我學習。

3.學習總結(15分)

3.1 學習進度條(5分)

周/日期 這周所花的時間 代碼行 學到的知識點簡介 目前比較迷惑的問題
11.4~11.10 12h 232 熟悉多分支結構switch語句的使用 在博客園中如何添加小掛飾

3.2 累積代碼行和博客字數(5分)

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

3.3.1 學習內容總結

3.3.2 學習體會

本週學習了多分支結構switch語句,當常量表達式所表達的量與其中一個case語句中的常量相符時,就執行此case語句後面的語句,並依次下去執行後面全部case語句中的語句,除非遇到break;語句跳出switch語句爲止。若是常量表達式的量與全部case語句的常量都不相符,就執行default語句中的語句並跳出switch語句。本週PTA第三題若是不限語句,那很容易的,這題我想了好久,在書上看到了for語句中加switch語句才恍然大悟,又學習了一個語句,仍是蠻開心的,switch語句做用也很大,不過第一題只記着用switch語句,忘了也能用for語句,想把C語言學好,設計一個小遊戲仍是蠻難的,不過我會努力的。

相關文章
相關標籤/搜索