English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

題目:
我們現行所用的曆法起源可以追溯到西元前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

3 個解答

#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

fedest.com, questions and answers