为了账号安全,请及时绑定邮箱和手机立即绑定

我这段程序为什么不行啊,大神帮忙看下,跪谢

int sum;

    switch(month)    /*对月份进行情况讨论

    {

        case 1;sum = 0+day;break;

        case 2;sum = 31+day;break;

        case 3;sum = 31+28+day;break;

        case 4;sum = 31+28+31+day;break;

        case 5;sum = 31+28+31+30+day;break;

        case 6;sum = 31+28+31+30+31+day;break;

        case 7;sum = 31+28+31+30+31+30+day;break;

        case 8;sum = 31+28+31+30+31+30+31+day;break;

        case 9;sum = 31+28+31+30+31+30+31+31+day;break;

        case 10;sum = 31+28+31+30+31+30+31+31+30+day;break;

        case 11;sum = 31+28+31+30+31+30+31+31+30+31+day;break;

        case 12;sum = 31+28+31+30+31+30+31+31+30+31+30+day;break;

        default:printf("一年当中只有12个月哦");break;

    }

    sum = sum+day;

    if(year%4 == 0)

    {

       if(month < 3)

         {

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

         }

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

    }

    else

    {

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

    }


正在回答

2 回答

case  X:  后面是冒号不是分号。

if(year%4 == 0)

    {

       if(month < 3)

         {

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

         }

       else     // 这儿掉了else 补上

         {

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

         }

    }

    else

    {

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

    }


0 回复 有任何疑惑可以回复我~
#1

慕婉清5674456 提问者

非常感谢!
2016-03-11 回复 有任何疑惑可以回复我~

首先,switch中已经+day了,为啥还要sum=sum+day;

其次,闰年并不是单纯的除以4来计算。

这是两个主要问题,其他问题就是程序健壮性的问题了,比如day>31等。

0 回复 有任何疑惑可以回复我~
#1

dongysh

switch的格式: switch() { case 1:....; case 2:....; }
2016-03-11 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

我这段程序为什么不行啊,大神帮忙看下,跪谢

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信