为了账号安全,请及时绑定邮箱和手机立即绑定

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

#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 回答

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


0 回复 有任何疑惑可以回复我~
#1

慕尼黑9453358 提问者

可是我是最后才用的break啊,并不影响从上向下传值
2018-07-17 回复 有任何疑惑可以回复我~
#2

慕工程9443490 回复 慕尼黑9453358 提问者

这个分支语句中sum的值并不会向下传递,它是很多个单独的分支
2018-07-27 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信