我算的結(jié)果不對,請問我哪里寫錯了?
#include <stdio.h>
int main()
{?
??? int year = 2008;
??? int month = 8;
??? int day = 8;
??? int i=1,j=0;//變量
???
??? for (i=1; i < month ; i++)
??? {
??????? switch(month)
??????? {
??????? case 1:
??????? case 3:
??????? case 5:
??????? case 7:
??????? case 8:
??????? case 10:
??????? case 12:
??????????? j+=31;
??????????? break;
??????? case 4:
??????? case 9:
??????? case 11:
??????????? j+=30;
??????????? break;
??????? case 2:
??????????? if ( year % 4 ==0)
??????????? {
??????????????? j+=29;
??????????????? break;
??????????? }
??????????? else
??????????? {
??????????????? j+=28;
??????????????? break;
??????????? }
??????? }
??????????
??? }
???? j+=day;
??????????? printf("%d年%d月%d天是該年的第%d天。", year,month,day,j);
?
?return 0;
}
我算的答案是225天,我不知道哪里錯了。
感謝幫助!
2018-07-31
邏輯有錯誤,你這樣寫比如case 2=29+8,正確的應(yīng)該是31+8,其他的case計算有的有錯有的沒錯我沒認(rèn)真去研究它是怎么計算的,但是整體計算邏輯上肯定錯了,計算天數(shù)應(yīng)該是本月之前的月份天數(shù)加上本月日期,而不是當(dāng)月的天數(shù)加上日期,你再思考下。
2018-08-02
你的 i<month;i++;此時month為8,而switch內(nèi)的是month,從而導(dǎo)致你的case 8循環(huán)了七次,若改為switch( i ) 再加上case 6 的話也是正確的。
2018-07-31