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

请问一下我这个代码哪里出了问题的?谢谢!

#include <stdio.h>
int main()
{
    /* 定义需要计算的日期 */
    int year = 2008;
    int month = 8;
    int day = 8;
    /*
     * 请使用switch语句,if...else语句完成本题
     * 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”
     * 小编还是希望大家独立完成哦~
     */
     int sum,n;
    switch(month)
    {
        case 1: sum=0;break;
        case 2: sum=31;break;
        case 3: sum=31+28;break;
        case 4: sum=31+28+31;break;
        case 5: sum=31+28+31+30;break;
        case 6: sum=31+28+31+30+31;break;
        case 7: sum=31+28+31+30+31+30;break;
        case 8: sum=31+28+31+30+31+30+31;break;
        case 9: sum=31+28+31+30+31+30+31+30;break;
        case 10: sum=31+28+31+30+31+30+31+30+31;break;
        case 11: sum=31+28+31+30+31+30+31+30+31+30;break;
        case 12: sum=31+28+31+30+31+30+31+30+31+30+31;break;
        default:printf("一年中只有十二个月哦");break;
    }
    sum=sum+day;
    if(year%4==0&&year%100!=0)
    n=1;
    else
    n=0;
    if(n==1&&month>2)
    sum++;
    printf("%d年%d月%d日是该年的第%d天",year,month,day,sum);
    return 0;
}
   
   
   
   
   


 return 0;
}


提问者:慕的地1872854 2019-07-01 17:01

个回答

  • qq_恒牙_0
    2019-07-05 12:19:52

    #include <stdio.h>

    int main() 

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

        int year = 2008;

        int month = 8;

        int day = 8;

        int sum=0;

        int m;

        for(m=1;m<month;m++)

        {

            switch(m)

            {

                case 1:

                case 3:

                case 5:

                case 7:

                case 8:

                case 10:

                case 12:

                sum+=31;break;

                case 2:

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

                sum+=29;    

                else 

                sum+=28;

                break;

                case 4: case 6: case 9: case 11:

                sum+=30;

                break;

            }

        

        }

        sum+=day;

        printf("这是第%d天",sum);


    return 0;

    }


  • 慕哥8362126
    2019-07-01 22:41:19

    兄弟你最后多了一个 return 0; 你把后面那几行去掉就行了