题目

从标准输入读入一个年份正整数,使用 if 条件分支结构判定其是否为公历闰年,输出“闰年”或“平年”。

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

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

数据范围与约定:1 ≤ 年份 ≤ 9999。

思路与算法

1. 闰年算法准则
公历闰年判断条件:年份能被 400 整除(世纪闰年),或者能被 4 整除但不能被 100 整除(普通闰年)。其余均为平年。

2. 取模函数 mod
Octave 整数取模用 mod(year, 400) == 0。

3. 短路与分支
在 `if` 判别式中,条件使用标量短路运算符 || 和 && 组合:(mod(year, 400) == 0) || (mod(year, 4) == 0 && mod(year, 100) ~= 0)。

完整程序

% Octave / MATLAB 第41题:闰年判断
[year, count] = scanf("%d", 1);

if count < 1 || year <= 0
    fprintf("错误:请输入有效的正整数年份。\n");
    return;
end

% 闰年规则判断
is_leap = (mod(year, 400) == 0) || (mod(year, 4) == 0 && mod(year, 100) ~= 0);

if is_leap
    fprintf("闰年\n");
else
    fprintf("平年\n");
end

运行示例

示例 1:

输入:

2000

输出:

闰年

示例 2:

输入:

1900

输出:

平年

示例 3:

输入:

2024

输出:

闰年