一、c语言判断一个年数是闰年还是平年,三种方法?

#include

int main()

{

int y;

scanf("%d",&y);

puts(y%400==0||y%4==0&&y%100!=0?"yes":"no");

return 0;

}

#include

int main()

{

int y;

scanf("%d",&y);

if(y%400==0||y%4==0&&y%100!=0)

puts("yes");

if(y%400!=0&&(y%4!=0||y%100==0))

puts("no");

return 0;

}

#include

int main()

{

int y;

scanf("%d",&y);

if(y%400==0||y%4==0&&y%100!=0)

puts("yes");

else

puts("no");

return 0;

}

二、C语言如何判断是闰年,闰年判断条件

不等价,因为判断闰年的标准是:1、能整除4且不能整除100 2、能整除400

你的意思是:

每4年有个闰年1896是闰年,4年后1900也是闰年除以4就是闰年

但严格上讲,"每4年一个闰年"这说法不严谨.应该是四年一闰,百年不闰,四百年再闰.

为什么呢?

1、产生闰年原因:地球绕太阳运行周期为365天5小时48分46秒(合365.24219天)即一回归年(tropical year).公历的平年只有365日,比回归年短约0.2422 日,所余下的时间约为四年累计一天,故四年于2月加1天,使当年的历年长度为366日,这一年就为闰年.

2、但是,上面算法又有了一个问题.就是0.2422*4=0.9688,比一天还差0.0322天,每4年差0.0322天不算多,但每400年就会差了约3天.即是说,假如每4年一个闰年,那么每400年就会有100个闰年,然后会多算了3天.

所以,就规定了每四百年中要减少三个闰年.公历年份是整百数的,必须是400的倍数的才是闰年,不是400的倍数的,虽然是100的倍数,也是平年.

综合以上2点,就有了现有的闰年判断标准.

能被4整除且不能被100整除的为闰年如2004年就是闰年,1900年不是闰年。世纪年能被400整除的是闰年,如2000年是闰年,1900年不是闰年。对于数值很大的年份,这年如果能被3200整除,并且能被172800整除则是闰年。如172800年是闰年,86400年不是闰年,因为虽然能被3200整除,但不能被172800整除。