如果輸入day大于31,vc++會一直提示linking,且無法正常退出編譯,這是為什么?
#include?<stdio.h> int?main()? {? ????/*?定義需要計算的日期?*/ ????int?year?=?1230; ????int?month?=?4; ????int?day?=?46; int?sum?,flag;??//定義天數(shù)和閏年變量 ????/* ?????*?請使用switch語句,if...else語句完成本題 ?????*?如有想看小編思路的,可以點擊左側(cè)任務(wù)中的“不會了怎么辦” ?????*?小編還是希望大家獨立完成哦~ ?????*/ ????switch?(month) { case?1:sum?=?day;break; case?2:sum?=?day?+?31;break; case?3:sum?=?day?+?28?+?31;break; case?4:sum?=?day?+?31?+?28?+31;break; case?5:sum?=?day?+?30?+?31?+?28?+?31;break; case?6:sum?=?day?+?31?+?30?+?31?+?28?+?31;break; case?7:sum?=?day?+?30?+?31?+?30?+?31?+?28?+?31;break; case?8:sum?=?day?+?31?+?30?+?31?+?30?+?31?+?28?+?31;break; case?9:sum?=?day?+?31?+?31?+?30?+?31?+?30?+?31?+?28?+?31;break; case?10:sum?=?day?+?30?+?31?+?31?+?30?+?31?+?30?+?31?+?28?+?31;break; case?11:sum?=?day?+?31?+30?+?31?+?31?+?30?+?31?+?30?+?31?+?28?+?31;break; case?12:sum?=?day?+?30?+?31?+30?+?31?+?31?+?30?+?31?+?30?+?31?+?28?+?31;break; default?:?printf("一年只有12個月哦。");break; } if?(year%400==0?||?year%4==0&&year%100!=0) flag?=?1; else flag?=?0; if?(flag?=?1?&&?month?>=?2) sum++; printf("%d年%d月%d日是這一年的第%d天",year,month,day,sum); return?0; }
代碼如上,如果說這個問題不能解決,那能不能在核心代碼運行前執(zhí)行一個范圍判斷語句判斷day的值是不是超出范圍呢?如果有,那應(yīng)該怎么寫呢?求解答
2016-07-04
在swith前加個if判斷下唄
2016-07-01
應(yīng)該是編譯器的問題,codeblocks通過編譯。