C语言问题 会的来,不会的模糊的别答,在线等的!!

来源:百度知道 编辑:UC知道 时间:2024/05/26 07:39:38
C语言问题 会的来,不会的会模糊的别答,在线等的!!
回答好了再加10分。
问题是这样的:
要判别某一年year是否是闰年,闰年的条件是否符合下面二者之一:
(1)能被4整除,但不能被100整除,(2)能被4整除,但不能被400整除。
答案:!(year%4==0&&year%100!=0||year%400==0)
当year为某一年整数时,如果上述表达式值为真(1),
则year为闰年,否则为非闰年。
答案对吗? 如果对的话,我不明白什么时候用&&什么时候用||. 具体怎么解答还有解题部注。

(year%4==0&&year%100!=0||year%400==0)

&&代表 并且(两个条件都要满足)
||代表 或者(两个条件只要一个满足)

&&的优先级高于||

我觉得保险的写法是

((year%4==0) && (year%100!=0 || year%400==0))

当不确定在&&和||之间哪一个会先被判断。

闰年的定义是:可以被4整除,但不能被100整除;如果既被4整除又被100整除,那么也要被400整除。

#include<stdio.h>
#include<conio.h>
void main()
{
int year,leap;
clrscr();
printf("Please input the year:\n");
scanf("%d",&year);
if(year%4==0)
{
if(year%100==0)
{
if(year%400==0)
{
leap=1;
}
else
{
leap=0;
}
}
leap=1;
}
else
{
leap=0;
}
if(leap)
{
printf("%d is",year);
}
else
{
printf("%d is not",year);
}
getch();