首先需要了解闰年的判断规则,以下是百度百科的介绍:
1.普通年份能被4整除,且不能被100整除的,是闰年。(如2004年就是闰年)
2.世纪年份能被400整除的是闰年。(如2000年是闰年,1900年不是闰年)
简单来说,满足下列两条件之一就是闰年:
(1)能被4整除,不能被100整除。
(2)能被400整除。
如果我们要打印1000~2000年之间的闰年,首先用for循环产生1000~2000之间的整数:
for (y = 1000; y <= 2000; y++)
{
;
}
接着我们只需写几个if语句就能很简单的判断闰年了:
for (y = 1000; y <= 2000; y++)
{
if (y % 4 == 0)
{
if (y % 100 != 0)
{
printf("%d ", y);
}
}
if (y % 400 == 0)
{
printf("%d ", y);
}
}
如果我们想要统计一下闰年的个数,完整代码如下:
#include <stdio.h>
int main()
{
int count = 0;
int y = 0;
for (y = 1000; y <= 2000; y++)
{
if (y % 4 == 0)
{
if (y % 100 != 0)
{
count++;
printf("%d ", y);
}
}
if (y % 400 == 0)
{
count++;
printf("%d ", y);
}
}
printf("\ncount = %d\n", count);
return 0;
}
但是这么写有点略显繁琐,事实上用“并且操作符”和“或者操作符”更为简单。判断闰年有两个条件,条件(1)和条件(2)之间是“或者”的关系,两者只需满足一个即可。但条件(1)中的“能被4整除”和“不能被100整除”之间是“并且”的关系,完整代码如下:
#include <stdio.h>
int main()
{
int y = 0;
int count = 0;
for (y = 1000; y <= 2000; y++)
{
if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0))
{
count++;
printf("%d ", y);
}
}
printf("\ncount = %d\n", count);//243
return 0;
}