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

请问我这个哪里错了呀?各位帮我看看,教教我,谢谢了。

#include <stdio.h>

int main() 

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

    int year = 2008;

    int month = 8;

    int day = 8;

    int days;

    /*

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

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

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

     */

    switch(month)

    {

        case 1:days=day;break;

    case 2:days=31+day;break;

    case 3:days=31+28+day;break;

    case 4:days=31+28+31+day;break;

    case 5:days=31+28+31+30+day;break;

    case 6:days=31+28+31+30+31+day;break;

    case 7:days=31+28+31+30+31+30+day;break;

    case 8:days=31+28+31+30+31+30+31+day;break;

    case 9:days=31+28+31+30+31+30+31+30+day;break;

    case 10:days=31+28+31+30+31+30+31+30+31+day;break;

    case 11:days=31+28+31+30+31+30+31+30+31+30+day;break;

    default 12:days=31+28+31+30+31+30+31+30+31+30+31+day;break;

    }

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

    {    

        days=days+1;

    }   

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

    else 

    

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

       return 0;

}


提问者:木然森树 2018-03-13 20:29

个回答

  • 慕后端5489353
    2018-03-13 21:31:07
    已采纳

    #include <stdio.h>

    int main() 

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

        int year = 2008;

        int month = 8;

        int day = 8;

        int days,days1;

        /*

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

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

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

         */

        switch(month)

        {

    case 1:

    days=day;

    break;

    case 2:

    days=31+day;

    break;

    case 3:

    days=31+28+day;

    break;

    case 4:

    days=31+28+31+day;

    break;

    case 5:

    days=31+28+31+30+day;

    break;

    case 6:

    days=31+28+31+30+31+day;

    break;

    case 7:

    days=31+28+31+30+31+30+day;

    break;

    case 8:

    days=31+28+31+30+31+30+31+day;

    break;

    case 9:

    days=31+28+31+30+31+30+31+30+day;

    break;

    case 10:

    days=31+28+31+30+31+30+31+30+31+day;

    break;

    case 11:

    days=31+28+31+30+31+30+31+30+31+30+day;

    break;

    default :

    days=31+28+31+30+31+30+31+30+31+30+31+day;

    break;

        }

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

        {    

            days1=days+1;

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

        }   

        

        else 

        {

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

    }

           return 0;

    }


  • IT小学员
    2018-03-13 21:07:27

    printf输出语句括号内的引号没写

  • 慕无忌2231251
    2018-03-13 20:55:54

    闰年时如果在一月或二月就不用加1;在判断闰年时前后两个并列条件要用括号;printf(%d年%d月%d日是该年的第%d天,year);没写完;你改改再试试,参考一下答案