支持一下!加油,嘿嘿{:1_1:} #include <stdio.h>
void main()
{
a:int year;
scanf("%d",&year);
if(year%4 ==0 || year%400 ==0 )
{
if(year%100 !=0)
printf("%d是闰年\n",year);
else
printf("%d是平年\n",year);
}
else
printf("%d是平年\n",year);
goto a;
} 是1,闰年的判断:
1.能被4整除却不能被100整除
2. 能被400整除的年份是闰年.
只是你编码不是很规范,如果这样,你就清楚了
if(year%4==0)
{
if(year%100==0)
{
if(year%400==0)
leap=1;
else
leap=0;
}
else
leap=1; //.能被4整除却不能被100整除
}
else
leap=0;
。。。 思路:
百年必须被400整除,例如1900不是,2000是
不是百年只需被4整除
最简单的if(year % 100 == 0)
{
if(year % 400 == 0)
leap=YES;
else
leap=NO;
}
else
{
if(year % 4 == 0)
leap=YES;
else
leap=NO;
}表达式:
year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)
等价于
(year % 4 == 0 &&year % 100 != 0) || (year % 4 == 0 &&year % 400 == 0) 感觉这个算法太复杂了,应该先对是否能被400整除进行判断,代码会变得简单很多 #include<stdio.h>
void main()
{
int year;
scanf("%d",year);
if(year%4==0&&year%100!==0||year%400==0)//.能被4整除却不能被100整除或者能被400整除的年份是闰年.
{
printf("是闰年");
}
else
{
printf("不是闰年");
}
}
这样理解就很容易理解的,更简洁,明了。
页:
1
[2]