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

我这个应该是错在哪了呢?

#include <stdio.h>

int main() 

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

    int year = 2008;

    int month = 8;

    int day = 8;

    int sum;

    switch(year)

    {

        case 1 : day=31;

        case 2 : if(year%100=0&&year%400=0||year%4=0)day=29;

        else day=28;

        case 3 : day=31;

        case 4 : day=30;

        case 5 : day=31;

        case 6 : day=30;

        case 7 : day=31;

        case 8 : day=31;

        case 9 : day=30;

        case 10 : day=31;

        case 11 : day=30;

        case 12 : day=31;

        break;

    }

    sum=sum+day;

    printf("%d年%d月%d日是该年的第%d天",year,month,day,sum)

return 0;

}


正在回答

1 回答

你switch的是year...你下面没有一个case是对的上的,就算是month...由于case之间没有break,会从case8由上往下执行,你的day最终的值是31...牵扯到sum计算的也只有sum=sum+day...应该是31=0+31...sum最终值也就是31,要改的地方挺多的...我switch也不熟,经常用for或者if写- -,你看下左边题目拉到最下面,有个不会了怎么办,哪里的答案写的挺好的...至少让我用switch,我上来是懵逼的- -

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

钟阿瞒i 提问者

我也懵逼但是我还是想自己想出来,所以推吧
2017-08-01 回复 有任何疑惑可以回复我~
#2

钟阿瞒i 提问者

((year%4==0 && year%100) || year%400==0) 这是啥意思啊?
2017-08-01 回复 有任何疑惑可以回复我~
#3

qq_龟龟_1 回复 钟阿瞒i 提问者

回晚了,抱歉...在上班...快下班啦~,这个应该是闰年的判断,我自己只知道每逢4年是闰年,自己写的话估计就是if(year%4==0)..然后查了下,4年一闰,百年不闰,400年再闰...那应该是if(year%4==0&&year%100!=0)||year%400==0)
2017-08-01 回复 有任何疑惑可以回复我~
#4

qq_龟龟_1 回复 钟阿瞒i 提问者

左边括号少了个- -if((year%4==0&&year%100!=0)||year%400==0)
2017-08-01 回复 有任何疑惑可以回复我~
#5

钟阿瞒i 提问者 回复 qq_龟龟_1

哦哦,谢谢哈,我不知道百年不闰这个事
2017-08-02 回复 有任何疑惑可以回复我~
#6

钟阿瞒i 提问者 回复 qq_龟龟_1

问一下,慕课网的C语言是不是不够全面啊?如果是的话,较全面一点的C语言应该在哪里学习呢?谢谢哈~
2017-08-12 回复 有任何疑惑可以回复我~
#7

qq_龟龟_1 回复 钟阿瞒i 提问者

我也不是主学C的...我就想看下c的一些语法概念例如指针什么的,要全面的话买本书读一读吧,你自己看下c primer plus这本书怎么样...我有...不过没读- -在学日语,还有打游戏- -没时间,估计明年会翻一翻
2017-08-18 回复 有任何疑惑可以回复我~
查看4条回复

举报

0/150
提交
取消

我这个应该是错在哪了呢?

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