c语言闰年代码解释

void main()
{int year, leap;
scanf("%d",&year);
if (year%4==0)
{
if (year%100==0)
{
if (year%400==0) leap=1;
else leap=0;}
else leap=1;
}
else leap=0;
if (leap) printf("%d is ",year);
else printf("%d is not ",year);
printf("a leap year.\n");
}我了解闰年的计算方法,也知道另外一些表示方法,就是有点想不通这个程序里面中间那几个if...else的作用,感觉越看越是与思路想违背。请哪位高人指点下,我想要知道那几个选择语句的在该代码里的详细作用。够简要的我坚决不吝啬给您加分!

点击图片放大 

注:真值为1既是if(....)中的....成立

温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-06-29
如果不能被4整除,则不是闰年
如果能被4整除,且不能被100整除,则为闰年
如果能被100整除,且能被400整除,则为闰年
如果能被100整除,但不能被400整除,则不是闰年

你把else的 {} 都补起来看就清楚点

if (year%4==0)
{
if (year%100==0)
{
if (year%400==0) //能被400整除的,是闰年
{
leap=1;
}
else //能被100整除,但不能被400整除的,不是闰年
{
leap=0;
}
}
else //能被4整除,但不能被100整除的,不是闰年
{
leap=1;
}
}
else //不能被4整除的,不是闰年
{
leap=0;
}
第2个回答  2010-06-29
if……else 用来判断 你输入的年份是否是闰年? 而 if……else 里面用到的是计算你输入的年份是否符合 闰年 的计算方法,而几个if……else 相重叠,是从 计算方法的 宽--》窄 的方向 渐进 判断的。
而最后的 一个if……else 括号里的 leap,则是 判断上面的 检测 的结果:leap=1,说明 你输入的年份 为 闰年 ,leap 为真(1),如果leap!=1,则说 明检测 结果 为不是闰年 输出 输入的年份为 不是闰年!

这是我的 各人见解,希望对你有所帮助! 供参考用!
第3个回答  2010-06-29
简单来说就是即能被4整除,又能被100整除,同时还能被400整除,同时满足这3个条件的就是闰年
第4个回答  2012-12-20
能被4整除但不能被100整除,或者能被400整除

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网