题目
从标准输入读入一个年份正整数,使用 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输出:
闰年