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

来源:4-17 switch与if语句的应用

慕婉清5674456

2016-03-11 13:50

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回答

  • Ciry
    2016-03-11 15:13:27
    已采纳

    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);

        }


    慕婉清567...

    非常感谢!

    2016-03-11 17:03:07

    共 1 条回复 >

  • dongysh
    2016-03-11 15:14:10

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

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

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

    dongys...

    switch的格式: switch() { case 1:....; case 2:....; }

    2016-03-11 15:15:45

    共 1 条回复 >

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926023 学习 · 20793 问题

查看课程

相似问题