习题:输入年份-输出该年是闰年还是平年

关于闰年: 地球的公转周期是365.2422个太阳日,按这个天数,地球围绕太阳公转一周后,并不是整整365个昼夜。因此,如果按照每年365天算,则每到四年,地球就和四年前的位置差了近一天。这一天的公转距离需要闰一日来补足,因此一般每四年就会出现一个闰年。  

0.2422 * 4 = 0.9688 < 1,因此每闰一次都会有点矫枉过正,造成了0.0312天的误差。每100个闰年(即400年)会造成3.12天的误差,为了减掉这个误差,人们又规定,在第25个、第50个、第75个“闰年”处不闰(减掉多余的3天),而在第100个闰年处保持闰年。 

为了好计算,人们这么制定了规则: 

1、如果年数可以整除400,则必定是闰年。否则判断2。 
2、如果年数可以整除100,则不是闰年。否则判断3。 
3、如果年数可以整除4,则是闰年。否则不是闰年。 

按照这个规则,1900年不是闰年,而2000年是,2100年则不是闰年。

/*
2012年9月30日0时39分
该程序功能是:输入年份,输出该年是闰年还是平年。
*/

# include <stdio.h>

int main(void)
{
int y;
begin:
printf("输入年份:");
scanf("%d", &y);

if(y%400==0)
printf("%d年是闰年!\n", y); //能被400整除,一定会是闰年;

else if (y%100!=0 && y%4==0)
printf("%d年是闰年!\n", y);//不能被100整除,但能被4整除的是闰年(不矛盾,如果能整除400判定为了闰年,就不会执行该语句);

else
printf("%d年是平年!\n", y);//不符合以上两个条件后的情况均为平年。即y%100==0 || y%4!=0;

goto begin;

return 0;
}
/*
该程序在VC++6.0中的输出结果是:
--------------------
输入年份:1990
1990年是平年!
输入年份:2004
2004年是闰年!
输入年份:

--------------------
*/


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值