為什么我的答案是218
#include <stdio.h>
int main()
{
??? /* 定義需要計算的日期 */
??? int year = 2008;
??? int month = 8;
??? int day = 8;
??? int i,sum;
??? /*
???? * 請使用switch語句,if...else語句完成本題
???? * 如有想看小編思路的,可以點擊左側任務中的“不會了怎么辦”
???? * 小編還是希望大家獨立完成哦~
???? */
???? sum = 0;
??? for(i=1;i<month; i++)
??? {
??????? switch(month)
??????? {
??????????? case 1:sum += 0;break;
??????????? case 3:
??????????????? if(year%400==0||(year%100!=0&&year%4==0))
??????????????? {
??????????????????? sum += 29;
??????????????? }
??????????????? else
??????????????? {
??????????????????? sum += 28;
??????????????? }
??????????????? break;
??????????? case 2:
??????????? case 4:
??????????? case 6:
??????????? case 9:
??????????? case 11:
??????????????? sum += 31;
??????????????? break;
??????????? case 5:
??????????? case 7:
??????????? case 8:
??????????? case 10:
??????????? case 12:
??????????????? sum += 30;
??????????????? break;
??????????? default:
???????????? printf("日期有誤!");
???????????? break;
??????? }
??? }
???
??????? sum = sum + day;
??????? printf("%d年%d月%d日是該年的第%d天",year,month,day,sum);
??? ?return 0;
}
2018-09-10
在 case 語句中沒有break,導致從上到下依次執行(就是全部加了一遍)