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)


输入数据检验:

猜你喜欢

转载自blog.csdn.net/chengjianghao/article/details/80780648
今日推荐