不知道问题出在哪里,求大佬帮助

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

慕尼黑9453358

2018-07-04 20:10

#include <stdio.h>

int main() 

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

    int year = 2008;

    int month = 8;

    int day = 8;

    /*

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

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

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

     */

   int sum=0;

   switch(month)

   {

        case 12:sum+=30;

        case 11:sum+=31;

        case 10:sum+=30;

        case 9:sum+=31;

        case 8:sum+=31;

        case 7:sum+=30;

        case 6:sum+=31;

        case 5:sum+=30;

        case 4:sum+=31;

        case 3:sum+=29;

        case 2:sum+=30;

        case 1:sum+=day;break;

   }

    

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

    //如果为真那么是闰年,闰年中大于2月份都要加一天

    {

        sum+=day+1;

    }

    else

    {

        sum+=day;   

    }

    printf("2008年8月8日是该年的第%d天",sum);

    return 0;

}


写回答 关注

1回答

  • 慕工程9443490
    2018-07-04 21:53:36

    我第一次也是犯了跟你一样的错误,对于各种case其实是每个分支,上面分支的sum在遇到break后就不会再把它的值传递到下一个case中去了,所以必须自己算出每种case中num的值,具体可以参考小编的思路


    慕工程944... 回复慕尼黑945...

    这个分支语句中sum的值并不会向下传递,它是很多个单独的分支

    2018-07-27 10:53:30

    共 2 条回复 >

C语言入门

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

926020 学习 · 20793 问题

查看课程

相似问题