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

请使用switch语句和if...else语句,计算2008年8月8日这一天,是该年中的第几天。 求大神分析错在哪

#include <stdio.h>
int main() 
{ 
    int year = 2008;
    int month = 8;
    int day = 8;
   int out,flag;
    switch(month)
    {
    case1:out=0;break;
    case2:out=31;break;
    case3:out=59;break;
    case4:out=90;break;
    case5:out=120;break;
    case6:out=151;break;
    case7:out=181;break;
    case8:out=212;break;
    case9:out=243;break;
    case10:out=273;break;
    case11:out=304;break;
    case12:out=334;break;
    default: printf("一年中只有12个月");break;
    }
 out=out+day;
 if ((year%4==0 && year%100>0) || year%400==0)
 flag=1;
 else
 flag=0;
 if (flag==1&&month>2)
    out++;
printf("%d年%d月%d日是该年的第%d天",year,month,day,out);
    return 0;
}

提问者:慕标3761811 2015-10-06 16:28

个回答

  • qq_非诚_0
    2016-01-22 14:04:37

    #include <stdio.h>

    int main() 

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

        int year = 2008;

        int month = 8;

        int day = 8;

        int flag,out; 

         /*

         * 请使用switch语句,if...else语句完成本题

         * 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”

         * 小编还是希望大家独立完成哦~

         */

        switch(month)

        {

        case 1:out=0;break;

        case 2:out=31;break;

        case 3:out=59;break;

        case 4:out=90;break;

        case 5:out=120;break;

        case 6:out=151;break;

        case 7:out=181;break;

        case 8:out=212;break;

        case 9:out=243;break;

        case 10:out=273;break;

        case 11:out=304;break;

        case 12:out=334;break;

        default: 

            printf("一年中只有12个月");

            break;

        }


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

     flag=1;

     else

     flag=0;

     if (flag==1&&month>2)

     {

        out=out+day+flag;

     }

     else

     { 

         out=out+day;

         

     }

        

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


    return 0;

    }


  • 伊兮尘昔
    2015-10-08 11:38:08

    case后面有个空格