题目

从标准输入读入一个整数年份,输出 闰年 或 平年。

输入格式:一行输入一个正整数表示年份。

输出格式:输出 闰年 或 平年,末尾换行。

数据范围与约定: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

输出:

平年