C语言编写闰年高手看下提点下

来源:百度知道 编辑:UC知道 时间:2024/09/28 08:50:55
希望高手指导
leap=1是闰年
#include <stdio.h>
void main()
{
int year,leap;
prints("please enter a year:");
scanf("%d",&year);
if(year%4==0)
{
if(year%100==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");
}

我看不太懂能被4整除,但不能被100整除,才是闰年。
if(year%4==0)和if(year%100=0)是不是同时进行
(year%4==0)and(year%100=0)同时符合才是闰年
最好能详细说明下我真的不懂,谢谢高手的指点

if(year%4==0)
{
if(year%100==0)
{
if(year%100==0)
{
if(year%400==0)
leap=1;
else
leap=0;
}
else
leap=1;
}
else
leap=0;
改为
if(year%4==0 && year%100!=0) leap=1;
else
if(year%400==0) leap=1;
else leap=0;
能被4整除,但不能被100整除的是闰年;
能被100整除,又能被400整除的是闰年。

只有能被4整除却不能被100整除的数或者能被400整除的数才是闰年
比如1996是闰年,因为可以被4整除却不能被100整除;
1900年就不是闰年,因为可以被4整除,却也可以被100整除;
2000年也是闰年,因为可以被400整除。
我觉得你可以这样表示
if(year%4==0 && year%100!=0 || year%400==0)leap=1;
else leap=0;