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; }