到底哪里错了,请大神指教

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

萌新在此

2017-09-11 22:54


我觉得我没错啊,可编译系统一直说 请检查输出是否包含:2008年8月8日是该年的第221天

写回答 关注

2回答

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

    哈哈。这样更简洁。我不喜欢慕课那个逻辑。

  • 露水小叶
    2017-09-12 09:39:33

    不知道你的hello.c代码是不是你写的,我copy来执行并没有错。

    这是我的代码:

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


    露水小叶 回复萌新在此

    可以的,你退出重新登录,在执行。我也遇到过提交一直报什么系统错误的。我执行你那个代码没有问题,输出也是对的

    2017-09-12 12:33:54

    共 2 条回复 >

C语言入门

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

926021 学习 · 20793 问题

查看课程

相似问题