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

case是不能运算么?只能printf?下面这种不可以么?

#include <stdio.h>
int main()
{
    int year = 2008;
    int month = 8;
    int day = 8;
    int sum = 0;
switch(month)
{
    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;
}
    int sum += 8;
    printf(%d,sum);

 return 0;
}


正在回答

1 回答

switch是达到符合的case后顺序下去。加上break之后就是只在符合的情况中变化。所以当月份为8时…都没有符合的case。漏写default了。以及最后

int sum += 8;
    printf(%d,sum);

应该是

  sum += 8;
    printf("%d",sum);


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

慕莱坞2287185 提问者

default是必须要写么?
2018-07-29 回复 有任何疑惑可以回复我~
#2

慕莱坞2287185 提问者

是什么意思呢?相当于else?
2018-07-29 回复 有任何疑惑可以回复我~
#3

慕莱坞2287185 提问者

哦我好像懂了,我前面的case1-7其实都没有用对吧 除非我先让month=1,然后加一个switch case=1 然后再让month=2,然后switch case=2 …… 一直到month=8,switch case=8 这样太麻烦了[捂脸]
2018-07-29 回复 有任何疑惑可以回复我~
#4

VVevy 回复 慕莱坞2287185 提问者

应该吧x我也是小白,看书上default都是写着的。是的,除了以上case中的情况,其他情况都是default里面。是的…可以看同学代码第一第二,两种思路。
2018-07-29 回复 有任何疑惑可以回复我~
查看1条回复

举报

0/150
提交
取消

case是不能运算么?只能printf?下面这种不可以么?

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