题目
从标准输入读入一个整数年份,输出 闰年 或 平年。
输入格式:一行输入一个正整数表示年份。
输出格式:输出 闰年 或 平年,末尾换行。
数据范围与约定:1 ≤ 年份 ≤ 9999。
思路与算法
1. 公历闰年判定规则
公历年份满足以下两种情况之一即为闰年:
① 能被 4 整除但不能被 100 整除(如 2024 年);
② 能被 400 整除(如 2000 年)。其余均为平年(如 1900 年虽然能被 4 整除,但也能被 100 整除且不能被 400 整除,故为平年)。
2. 逻辑运算符优先级
在 C 语言中,% 取模运算优先级高于比较运算符 ==,且 && 优先级高于 ||。推荐配合圆括号 (year % 400 == 0) || (year % 4 == 0 && year % 100 != 0) 清晰表达语义。
完整程序
#include <stdio.h>
int main(void)
{
int year;
if (scanf("%d", &year) != 1) {
return 1;
}
// 闰年规则:能被 400 整除(世纪闰年),或者能被 4 整除但不能被 100 整除(普通闰年)
if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)) {
printf("闰年\n");
} else {
printf("平年\n");
}
return 0;
}运行示例
示例 1:
输入:
2000输出:
闰年示例 2:
输入:
1900输出:
平年