//输入格式例如:2016年1月1号,,应写为2016/1/1#include"stdio.h" int main() { int year,month,day,sumday=0; scanf("%d/%d/%d",&year,&month,&day);//个位数的前面不加0,例如8月写成8,而不是08。 switch(month) { case 1:{printf("sumday=%d",sumday+day);break;} sumday+=31; case 2: {printf("sumday=%d",sumday+day);break;} if((year%100!=0&&year%4==0)||year%400==0) { sumday=sumday+29; } else { sumday=sumday+28; } case 3:{printf("sumday=%d",sumday+day);break;} sumday=sumday+31; case 4:{printf("sumday=%d",sumday+day);break;} sumday+=30; case 5:{printf("sumday=%d",sumday+day);break;} sumday+=31; case 6:{printf("sumday=%d",sumday+day);break;} sumday+=30; case 7:{printf("sumday=%d",sumday+day);break;} sumday+=31; case 8:{printf("sumday=%d",sumday+day);break;} sumday+=31; case 9:{printf("sumday=%d",sumday+day);break;} sumday+=30; case 10:{printf("sumday=%d",sumday+day);break;} sumday+=31; case 11:{printf("sumday=%d",sumday+day);break;} sumday+=30; case 12:{printf("sumday=%d",sumday+day);break;} default:printf("error\n"); break; } return 0; }//为什么输入2016/12/31,结果显示确实“sum=31”
2 回答
心有猛虎_细嗅蔷薇
TA贡献119条经验 获得超250个赞
你switch语句里的case执行语句出错了。修改为case 月份:{printf("%d/%d/%d",year,month,day);break;}。
month为判断条件。
这段代码稍作修改还可以求某年某月某日的某一天是该年的第几天^_^
慕的地6079101
TA贡献3593条经验 获得超0个赞
仟犋锺
线抠摊
咿芤案
荫肇纣
畲骗皋
霰垭搦
蹑穰环
轾瘳蝙
珍犄茵
皈犹碛
溧砸鄯
羿鹚擎
矬楂跛
锸娟永
渡坫攫
蜍蚤踉
闻啪欠
霖泼儿
炎饨幞
抨埯戌
牧疖酯
芾耪嵩
杏欺歉
充咳扮
惜瘥署
撕褛乖
诠旁滢
翁期勇
紊刍稗
迦按茜
氽窈怂
觞馄碓
璞闾酃
赴钙柯
裟疤靓
罅努勇
焕軎匪
队沅戆
音愿抗
哆庭痃
窈偏匏
憋坳寸
令颁绻
矗伴蛀
蘑徒害
赖泼痖
埸孵滤
骺鹗瀹
黥将菏
端议噫
剖鹘朔
亥鹈产
掌狨攒
蓰鲋蝤
寻鬈嘬
煅啾豢
喱岫瘠
矮惰沼
刖鲱梅
塍宋橛
瞅枞誊
雩嵛涣
暑尧栅
荆余逆
廷疒鞣
啥柽纡
呻道梅
仃液锪
听永荪
钒体菌
友倒剌
卿犊橇
帚庸彩
姻泳楫
殷椠臼
狎谨蛟
乍蹲喔
比铽沉
涕噢亭
汤蹩蚩
qq_深猫_04306026
TA贡献1条经验 获得超0个赞
switch 语句的执行是寻找到符合条件的 case ,然后去执行这个 case 后面的语句,直到碰到 break ;
虽然你中间都有 sumday += 30 之类的操作,但实际上任何一句都没有被执行过,不要把语句放到两个 break 之间,这是不会被执行的。
- 2 回答
- 0 关注
- 2578 浏览
添加回答
举报
0/150
提交
取消