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

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

木然森树

2018-03-13 20:29

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

}


写回答 关注

3回答

  • 慕后端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;

    }


    木然森树

    非常感谢!

    2018-03-15 19:40:23

    共 1 条回复 >

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

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

    木然森树

    谢谢!

    2018-03-15 19:41:04

    共 1 条回复 >

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

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

    木然森树

    谢谢啦!

    2018-03-15 19:40:55

    共 1 条回复 >

C语言入门

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

926020 学习 · 20793 问题

查看课程

相似问题