題目:
我們現行所用的曆法起源可以追溯到西元前46年,當時羅馬帝國凱薩大帝(Gaius Julius Caesar)聘請天文學家制訂新曆法,規定一年12個月,單月31天,雙月30天,共366天,但由於精確來說一年為365.2422天,所以從二月扣去一天,使二月變成29天,但這麼一來又比一年真正的時間短,因此又決定每四年加一天為閏年來補這個誤差。凱撒出生的七月為大月,以自己的名字Julius來命名;而繼任的奧古斯都(Augustus)為了顯揚自己,也將八月改名為Augustus,還將他出生的八月改為大月,可是原本八月是30天變成31天,平白多了一天,只好從二月再挪一天過來,於是成了現今平年二月只有28天的版本。
也由於一年精確算來是365.2422天,為了修正小數點後的誤差,除了每四年為閏年之外,每百年不閏年,每四百年則又閏年,每四千年則不閏(口訣:逢四閏,逢百不閏,逢四百閏,逢四千不閏)。
例如:
1992、1996、2004年為4的倍數,閏年;
1700、1800、1900年為100的倍數,不是閏年;
1600、2000、2400年為400的倍數,閏年;
4000、8000、12000年為4000的倍數,不是閏年。
請使用C/C++語言設計一程式,接受使用者連續輸入年份,判斷是否為閏年,當輸入為負值時,程式結束;輸入值在0000~9999間能正確運作即符合要求。
可以下列資料測試結果是否正確:
1899(平)、1900(平)、1999(平)、2000(閏)、2400(閏)、4000(平)
2007-10-11 17:58:58 · 3 個解答 · 發問者 Anonymous in 電腦與網際網路 ➔ 程式設計
開頭是
#include
int main()
{............
..........
.
之類ㄉ 我是新手=ˇ= 不要寫太難
2007-10-11 20:54:18 · update #1
#include
#include
int main() {
int y;
do {
printf("請輸入年份(0~9999),輸入負值則程式結束:");
scanf("%d", &y);
if( ( y % 4 == 0 && !( y % 100 == 0 ) ) || ( y % 400 == 0 && !( y % 4000 == 0) ) )
printf("%d(閏)\n", y);
else
printf("%d(平)\n", y);
}while( y >= 0 && y <= 9999);
system("PAUSE");
return(0);
}
2007-10-11 22:49:19 · answer #1 · answered by Ashley 7 · 0⤊ 0⤋
噗~~~~會ㄇ=ˇ=
2007-10-11 19:16:34 · answer #2 · answered by 小巫 1 · 0⤊ 0⤋
=_=!!! 萬年曆
2007-10-11 19:05:45 · answer #3 · answered by Big_John-tw 7 · 0⤊ 0⤋