為什么這樣不對(duì)
#include <stdio.h>
int main()?
{?
? ? /* 定義需要計(jì)算的日期 */
? ? int year = 2008;
? ? int month = 8;
? ? int day = 8;
? ? /*
? ? ?* 請(qǐng)使用switch語句,if...else語句完成本題
? ? ?* 如有想看小編思路的,可以點(diǎn)擊左側(cè)任務(wù)中的“不會(huì)了怎么辦”
? ? ?* 小編還是希望大家獨(dú)立完成哦~
? ? ?*/
? ? int j;
? ? switch(month)
? ? {
? ? ? ? case 1:j=day;break;
? ? ? ? case 2:j=31+day;break;
? ? ? ? case 3:j=31+28+day;break;
? ? ? ? case 4:j=31+28+31+day;break;
? ? ? ? case 5:j=31+28+31+30+day;break;
? ? ? ? case 6:j=31+28+31+30+31+day;break;
? ? ? ? case 7:j=31+28+31+30+31+30+day;break;
? ? ? ? case 8:j=31+28+31+30+31+30+31+day;break;
? ? ? ? case 9:j=31+28+31+30+31+30+31+31+day;break;
? ? ? ? case 10:j=31+28+31+30+31+30+31+31+30+day;break;
? ? ? ? case 11:j=31+28+31+30+31+30+31+31+30+31+day;break;
? ? ? ? case 12:j=31+28+31+30+31+30+31+31+30+31+30+day;break;
? ? }
? ? if(year%400==0||(year%4==0&&year%100!=0))
? ? ? j+=1;
? ? else
? ? ? j+=0;
? ? printf("%d年%d月%d日是該年中的第%d天",year,month,day,j);
return 0;
}
2017-08-11
如果是閏年,但只是在1月(或者2月),那么第幾天就是day的值(或者day+31),但下面的if語句判斷它是閏年后又多加了一天,所以有誤差。2月以后天數(shù)計(jì)算沒問題。哈哈,望采納。
2017-08-10
你漏了討論月份大于或小于二的情況,當(dāng)然錯(cuò)了。