1、使用 if-else 语句
#include <stdio.h>
int main() {
int year;
printf("请输入一个年份:");
scanf("%d", &year);
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
printf("%d 是闰年。\n", year);
} else {
printf("%d 不是闰年。\n", year);
}
return 0;
}
2、使用三元运算符
#include <stdio.h>
int main() {
int year;
printf("请输入一个年份:");
scanf("%d", &year);
(year % 4 == 0 && year % 100 != 0) || (year % 400 == 0) ?
printf("%d 是闰年。\n", year) :
printf("%d 不是闰年。\n", year);
return 0;
}
3、使用函数判断
#include <stdio.h>
int isLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
int main() {
int year;
printf("请输入一个年份:");
scanf("%d", &year);
if (isLeapYear(year)) {
printf("%d 是闰年。\n", year);
} else {
printf("%d 不是闰年。\n", year);
}
return 0;
}
4、使用宏定义
#include <stdio.h>
#define IS_LEAP_YEAR(y) (((y) % 4 == 0 && (y) % 100 != 0) || (y) % 400 == 0)
int main() {
int year;
printf("请输入一个年份:");
scanf("%d", &year);
if (IS_LEAP_YEAR(year)) {
printf("%d 是闰年。\n", year);
} else {
printf("%d 不是闰年。\n", year);
}
return 0;
}
5、使用数组和查表法
此方法较少使用,但可以作为练习。
#include <stdio.h>
int leapYearTable[] = {
// 简单起见,这里只列出几个年份的示例
1996, 2000, 2004, 2008, 2012, 2016, 2020, 2024
};
int isLeapYear(int year) {
for (int i = 0; i < sizeof(leapYearTable) / sizeof(leapYearTable[0]); i++) {
if (leapYearTable[i] == year) {
return 1;
}
}
return 0;
}
int main() {
int year;
printf("请输入一个年份:");
scanf("%d", &year);
if (isLeapYear(year)) {
printf("%d 是闰年。\n", year);
} else {
printf("%d 不是闰年。\n", year);
}
return 0;
}