我這樣寫可以嗎,哪里有錯誤,請指教
#include <stdio.h>
int main()
{
??? /* 定義需要計算的日期 */
??? int year = 2008;
??? int month = 8;
??? int day = 8;
??? /*
???? * 請使用switch語句,if...else語句完成本題
???? * 如有想看小編思路的,可以點擊左側任務中的“不會了怎么辦”
???? * 小編還是希望大家獨立完成哦~
???? */
???? int Month;
???? int days;
???? int sum=0;
???? for(Month=1;Month<=8;Month++)??
??? {
??? switch(Month)
??? {
??????? case 1:days=31;
??????????????? breaks;
??????? case 2:if(year%400==0&&year%4==0)
??????????????? {days=29;}
??????????????? else{days=28;}
??????? case 3:days=31;
??????????????? breaks;
??????? case 4:days=30;
??????????????? breaks;
??????? case 5:days=31;
??????????????? breaks;
??????? case 6:days=30;
??????????????? breaks;
??????? case 7:days=31;
??????????????? breaks;
??????? case 8:days=31;
??????????????? breaks;
??????? case 9:days=30;
??????????????? breaks;
??????? case 10:days=31;
??????????????? breaks;
??????? case 11:days=30;
??????????????? breaks;
??????? case 12:days=31;
??????????????? breaks;
???????
???
??????? sum+=days;
??? }
??? }
???
?return 0;
}
2019-06-26
問題一:for(Month=1;Month<=8;Month++)只是應付了問題中的8月,如果是8月以后呢?問題二:month始終沒有代入計算,不需要重新定義Month,反而變復雜了;問題三:閏年判斷函數錯誤。可以參考我的代碼:
#include <stdio.h>
int main()?
{?
? ? /* 定義需要計算的日期 */
? ? int year = 2008;
? ? int month = 8;
? ? int day = 8;
? ? switch(month-1)
? ? {
? ? ? ? case 11:day+=30;
? ? ? ? case 10:day+=31;
? ? ? ? case 9:day+=30;
? ? ? ? case 8:day+=31;
? ? ? ? case 7:day+=31;
? ? ? ? case 6:day+=30;
? ? ? ? case 5:day+=31;
? ? ? ? case 4:day+=30;
? ? ? ? case 3:day+=31;
? ? ? ? case 2:
? ? ? ? ? ? if((year%4==0 && year%100) || year%400==0) day+=29;?
? ? ? ? ? ? else day+=28;
? ? ? ? case 1:day+=31;
? ? }
? ? printf("2008年8月8日是該年的第%d天",day);
return 0;
}