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

我这样结果对了,为什么提交却不正确!

#include <stdio.h>

int main() 

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

    int year = 2008,month = 8,day = 8,sum=0;

    switch(month-1)

    {case 11:sum+=30;

    case 10:sum+=31;

    case 9:sum+=30;

    case 8:sum+=31;

    case 7:sum+=31;

    case 6:sum+=30;

    case 5:sum+=31;

    case 4:sum+=30;

    case 3:sum+=31;

    case 2:{if(year%4==0&&year%100!=0||year%400==0)sum+=29;

           else sum+=28;}

    case 1:sum+=31;}

    sum+=day;

    printf("%d",sum);

return 0;

}


正在回答

2 回答

我想问问那个月份倒序着写和正序着写有区别吗?

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

乔琬

switch语句中各个case分支甚至是default分支改变顺序对执行结果没有影响。因为switch语句会先判断括号内的表达式有选择的执行case语句,当括号内的表达式均不等于各case常量表达式的值便执行default语句。与顺序无关,就算打乱顺序不是顺序也不是逆序也可以。
2019-04-02 回复 有任何疑惑可以回复我~
#2

乔琬

但是对于题主的这个代码只能逆序,因为题主的switch语句不含break语句,所以执行顺序从上到下。若是正序写则不符合题意中的计算前month-1个月总天数的条件。
2019-04-02 回复 有任何疑惑可以回复我~
#3

乔琬

很抱歉一开始没看清问题
2019-04-02 回复 有任何疑惑可以回复我~
#4

慕瓜7033707 回复 乔琬

谢谢你的耐心指点,我大概懂了这个思路了,感觉比系统给的参考答案更简单明了。
2019-04-03 回复 有任何疑惑可以回复我~
#5

乔琬 回复 慕瓜7033707

哈哈,不客气,加油!
2019-04-05 回复 有任何疑惑可以回复我~
查看2条回复

这个网页只识别它自己内置的答案,你写的要是不符合它的,就算输入错误

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

菜鸟321456

哦,原来是这样 ,谢谢
2019-04-20 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

我这样结果对了,为什么提交却不正确!

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