什么叫闰年?
闰年是公历中的名词。闰年分为普通闰年和世纪闰年。
- 普通闰年:公历年份是4的倍数,且不是100的倍数,为闰年。(如2004年就是闰年)
- 世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年。(如1900年不是世纪闰年,2000年是世纪闰年)
题目:打印1000~2000年之间的闰年
闰年的判断规则:
- 能被4整除,并且不能被100 整除的是闰年
- 能被400整除的是闰年
解法一:(for循环)
#include <stdio.h>
int main()
{
int year = 0;
for (year = 1000; year <= 2000; year++)
{
//判断year是不是闰年
if (year % 4 == 0)//year%4等于0,能被4整除
{
if (year % 100 != 0)//不能被100整除
{
printf("%d ", year);
}
}
if (year % 400 == 0)//year%400等于0,能被400整除
{
printf("%d ", year);
}
}
return 0;
}
解法二:(解法一的升级版)
#include <stdio.h>
int main()
{
int year = 0;
for (year = 1000; year <= 2000; year++)
{
//判断year是不是闰年
if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))
{
printf("%d ", year);
}
}
return 0;
}
&& 逻辑与(并且)两个数中有一个为假,则判断为假。
|| 逻辑或(或者)两个数中有一个为真,则判断为真。
解法三:(用函数打印1000-2000年之间的闰年)
//用函数打印1000-2000年之间的闰年
//是闰年返回1
//不是闰年返回0
#include <stdio.h>
int is_leap_year(int y)
{
if (((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0))
return 1;
else
return 0;
}
int main()
{
int year = 0;
for (year = 1000; year <= 2000; year++)
{
//判断year是不是闰年
if (is_leap_year(year))
{
printf("%d ", year);
}
}
return 0;
}
三种解法的运行结果都一样: