c语言 year%4||!year%100&&year%400 能不能判断是不是闰年,为什么?

如题所述

不能判断,应该是year%4&&!year%100||year%400,因为闰年的定义是:①、普通年能被4整除且不能被100整除的为闰年。(如2004年就是闰年,1901年不是闰年)  ②、世纪年能被400整除的是闰年。(如2000年是闰年,1900年不是闰年) , 这句程序(year%4||!year%100&&year%400)的意思是:能被四整除或不能被100整除且能被四百整除,因此不对。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-10-27
不能! 应该是 if((year%4==0&&year%100!=0)||(year%400==0)) 满足这个条件时 才是闰年!
程序应该是:
#include<stdio.h>
void main()
{
int year,leap;
scanf("%d",&year);
if((year%4==0&&year%100!=0)||(year%400==0))
leap=1;
else
leap=0;
if(leap)
printf("%d is a leap year",year);
else
printf("%d is not a leap year",year);
getch();
}
或者麻烦点 也可以是: 即:1:( 能被4整除但不能被100整除) 或者是2:(能被4,100,400都整除,也就是能被400整除)
#include<stdio.h>
void main()
{
int year;
scanf("%d",&year);
if(year%4==0)
{
if(year%100==0)
{
if(year%400==0)
printf("%d is a leap year",year);
else
printf("%d is not a leap year",year);
}
else
printf("%d is a leap year",year);
}
else
printf("%d is not a leap year",year);
getch();
}追问

辛苦了!不过没答到点子上。。。

第2个回答  2011-10-27
不能 原因: !的最高,如果year是年份,!year表示 0, 则条件不符合本回答被提问者采纳
第3个回答  2011-10-27
闰年满足下列条件之一:
条件(1):能被4整除但不能被100整除
条件(2):能被400整除
故判断闰年的逻辑表达式:
(year%4==0&&year%100!=0)||year%400==0
或者
(year%4&&!year%100)||year%400
第4个回答  2011-10-27
应该是不行吧,我给你个
(!(year%4)IIyear%100)&&!(year%400)

相关了解……

你可能感兴趣的内容

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