請問這樣寫錯在哪里???
#include <stdio.h>
int main()
{
??? /* 定義需要計算的日期 */
??? int year = 2008;
??? int month = 8;
??? int day = 8;
??? /*
???? * 請使用switch語句,if...else語句完成本題
???? * 如有想看小編思路的,可以點擊左側(cè)任務(wù)中的“不會了怎么辦”
???? * 小編還是希望大家獨立完成哦~
???? */
??? int i,j,sum;//j是月份不同天數(shù)的三種情況
??? for(i=1;i<month;i++)//從1月到month-1月循環(huán)
??? {
??????? if(i==2)
??????? {
??????????? j=2;
??????? }
??????? else if(i==4||i==6||i==9||i==11)
??????? {
??????????? j=3;
??????? }
??????? else
??????? {
??????????? j=1;
??????? }
??????? //判斷當(dāng)月屬于哪種情況
??????? switch(j)
??????? {
??????? case 1:
??????????? sum+=31;
??????????? break;
??????? case 2:
??????????? if(!(year%4))
??????????? {
??????????????? sum+=29;
??????????? }
??????????? else
??????????? {
??????????????? sum+=28;
??????????? }
??????????? break;
??????? case 3:
??????????? sum+=30;
??????????? break;
??????? }
??????? //每月不同情況處理
??? }
??? sum+=day;??
??? printf("2008年的8月8日是該年的第%d天",sum);
?return 0;
}
2017-01-12
sum沒有聲明初始值,sum=0就不會異常了。
還有閏年的判斷語句是(year%4==0&&year%100!=0)||(year%400==0)
2016-12-29
自己寫的代碼現(xiàn)在電腦上的編譯軟件試一下,因為慕課網(wǎng)這個判斷太死板了。