C語言解決是不是閏年問題

由於現在經常看見有關閏年的程序,風式各樣,眼花繚亂,些許凌亂,觀來頓感疲憊。在此希望通過最常用的3種語言(c,c++,java)詳細的解釋閏年的計算,希望不會誤人子弟!

題目:寫一個判斷輸入的年份是閏年的程序!

分析:眾所周知,閏年是每4年一個,怎麼來的呢?由於1年365天,但是根據地球繞太陽旋轉算出地球繞太陽旋轉一週要365天多一點,多這一點通過4年的累加便成為了1天,這一天(由於時間在科研等重要領域都有一定的重要性)不能輕易略去,所以便把這一天加到了2月去,形成了2月29天也就是閏年,也就是說(年份/4)就是閏年。但是由於地球繞太陽旋轉一週並不是簡單的精確時間,在前面說的基礎上(每400年)又會多出一點,多的這一點恰好是1天,於是便把這一天加到了400年(後)的這一年上。於是(年份/400)也是閏年。

舉個例子:200年:200/4=50 不是閏年,但是400(400/4=100)是閏年。這怎麼辦?怎麼讓200不是閏年而400是閏年呢?於是我們想到一個表達式:設n為年份,(n/4=整數並且(&&)n/100不等於整數)或者(||)n/400是整數。這樣讓200不是閏年,而400確實整數。比如n=1996;n/4=499(整數)並且1996/100=19.96(不是整數)這樣1996就是閏年。加入n=2000呢?2000/4=500,2000/100=20。於是2000不是閏年,但是2000/400=5;於是假和真的或者(||)是真,於是2000是閏年。當然在程序中我們就得把/換為%(取餘)。(如果還是沒看明白請百度鏈接為:http://baike.so.com/doc/5366944-5602688.html)

c語言程序如下:(環境為vc6.0)

C語言解決是不是閏年問題

輸入數據檢驗:

C語言解決是不是閏年問題

C語言解決是不是閏年問題

#真想來了#


分享到:


相關文章: