问答详情
源自:4-17 switch与if语句的应用

我这个应该是错在哪了呢?

#include <stdio.h>

int main() 

    /* 定义需要计算的日期 */

    int year = 2008;

    int month = 8;

    int day = 8;

    int sum;

    switch(year)

    {

        case 1 : day=31;

        case 2 : if(year%100=0&&year%400=0||year%4=0)day=29;

        else day=28;

        case 3 : day=31;

        case 4 : day=30;

        case 5 : day=31;

        case 6 : day=30;

        case 7 : day=31;

        case 8 : day=31;

        case 9 : day=30;

        case 10 : day=31;

        case 11 : day=30;

        case 12 : day=31;

        break;

    }

    sum=sum+day;

    printf("%d年%d月%d日是该年的第%d天",year,month,day,sum)

return 0;

}


提问者:钟阿瞒i 2017-08-01 10:56

个回答

  • qq_龟龟_1
    2017-08-01 11:50:20
    已采纳

    你switch的是year...你下面没有一个case是对的上的,就算是month...由于case之间没有break,会从case8由上往下执行,你的day最终的值是31...牵扯到sum计算的也只有sum=sum+day...应该是31=0+31...sum最终值也就是31,要改的地方挺多的...我switch也不熟,经常用for或者if写- -,你看下左边题目拉到最下面,有个不会了怎么办,哪里的答案写的挺好的...至少让我用switch,我上来是懵逼的- -