c语言 year%4||!year%100&&year%400 能不能判断是不是闰年,为什么?
发布网友
发布时间:2022-05-14 13:35
我来回答
共5个回答
热心网友
时间:2023-10-18 22:57
不能判断,应该是year%4&&!year%100||year%400,因为闰年的定义是:①、普通年能被4整除且不能被100整除的为闰年。(如2004年就是闰年,1901年不是闰年) ②、世纪年能被400整除的是闰年。(如2000年是闰年,1900年不是闰年) , 这句程序(year%4||!year%100&&year%400)的意思是:能被四整除或不能被100整除且能被四百整除,因此不对。
热心网友
时间:2023-10-18 22:57
不能! 应该是 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();
}追问辛苦了!不过没答到点子上。。。
热心网友
时间:2023-10-18 22:58
不能 原因: !的优先级最高,如果year是年份,!year表示 0, 则条件不符合
热心网友
时间:2023-10-18 22:58
闰年满足下列条件之一:
条件(1):能被4整除但不能被100整除
条件(2):能被400整除
故判断闰年的逻辑表达式:
(year%4==0&&year%100!=0)||year%400==0
或者
(year%4&&!year%100)||year%400
热心网友
时间:2023-10-18 22:59
应该是不行吧,我给你个
(!(year%4)IIyear%100)&&!(year%400)