回覆列表
  • 1 # 使用者6765375850720

    #include

    int main(){

    int year,month;

    int a=0;

    printf("輸入任意符合範圍(1月~12月)的月份和(1900年~9999年)年份,且兩個值之間空格分隔。\n");

    scanf("%d %d",&year,&month);

    if(year%4==0&&year%100!=0||year%400==0)

    a=1;//結果為1代表閏年

    switch(month){

    case 1:

    case 3:

    case 5:

    case 7:

    case 8:

    case 10:

    case 12:

    printf("year =%d month =%d days=31\n",year,month);

    break;

    case 2:

    if(a==1)

    printf("year =%d month =%d days=29\n",year,month);

    else

    printf("year =%d month =%d days=28\n",year,month);

    break;

    case 4:

    case 6:

    case 9:

    case 11:

    printf("year =%d month =%d days=30\n",year,month);

    break;

    }

    return 0;

    }

  • 2 # 使用者3456175603979

    用switch選擇的:

    #include

    int main()

    {

    int y,m;

    printf("請依次輸入年,月:\n");

    scanf("%d,%d",&y,&m); //上機時注意打逗號,也可修改為其他格式

    switch(m)

    {

    case 1:

    case 3:

    case 5:

    case 7:

    case 8:

    case 10:

    case 12:printf("這個月有31天\n");break;

    case 2 : if(y%4==0&&y%100!=0||y%400==0) //最基本的判斷閏年的條件

    printf("這個月有29天\n");

    else printf("這個月有28天\n");break;

    case 4:

    case 6:

    case 9 :

    case 11:printf("這個月有30天\n");break;

    }

    return 0;

    }

    用指標型列舉的:

    #include

    int a[]={31,28,31,30,31,30,31,31,30,31,30,31},*p1,*p2,*p3,i=1,k=0;

    int main()

    {

    int p1,p2;

    printf("請依次輸入年·月:\n");

    scanf("%d%d",&p1,&p2);

    if(p1%4==0&&p1%100!=0||p1%400==0)

    a[1]=29;

    if(p2>12)

    printf("您的輸入有誤!\n");

    printf("這個月的天數為:%d\n",a[p2-1]);

    return 0;

    }#include

    main()

    {int a,b;

    printf("請輸入年份和月份:\n");

    scanf("%d%d",&a,&b);

    if (a%4==0&&a%100!=0)

    if(b==2)

    printf("這個月有29天\n");

    else if (b==1||b==3||b==5||b==7||b==8||b==10||b==12)

    printf("這個月有31天\n");

    else

    printf("這個月有30天\n");

    else if(b==2)

    printf("這個月有28天\n");

    else if (b==1||b==3||b==5||b==7||b==8||b==10||b==12)

    printf("這個月有31天\n");

    else

    printf("這個月有30天\n");}

    普通

    #include

    main(){

    int a,b;

    printf("請輸入年份和月份:\n");

    scanf("%d%d",&a,&b);

    if (a%4==0&&a%100!=0)

    if(b==2)

    printf("這個月有29天\n");

    else if (b==1||b==3||b==5||b==7||b==8||b==10||b==12)

    printf("這個月有31天\n");

    else

    printf("這個月有30天\n");

    else if(b==2)

    printf("這個月有28天\n");

    else if (b==1||b==3||b==5||b==7||b==8||b==10||b==12)

    printf("這個月有31天\n");

    else

    printf("這個月有30天\n");}

    擴充套件資料

    switch 語句可以處理多分支選擇問題,根據其中break 語句的使用方法,一般分三種情況。

    在switch 語句的每個語句段中都使用break 語句,這是switch 語句的主要使用方法,一般形式為:

    switch (表示式)

    case 常量表達式1: 語句段1; break;

    case 常量表達式2: 語句段2; break;

    case常量表達式n: 語句段n; break;

    case常量表達式n+1:語句段n+ 1; break;

    default :

    參考資料

  • 中秋節和大豐收的關聯?
  • 讓人措手不及的腦出血該如何正確急救?