0

0

C++ 怎么判断闰年 C++ 年份整除逻辑判断代码实现【练习】

穿越時空

穿越時空

发布时间:2026-01-31 13:38:02

|

374人浏览过

|

来源于php中文网

原创

判断闰年的核心条件是:能被4整除但不能被100整除,或者能被400整除。该规则精确区分常规闰年(如2024)、普通世纪年(如1900,非闰年)和世纪闰年(如2000,是闰年)。

c++ 怎么判断闰年 c++ 年份整除逻辑判断代码实现【练习】

判断闰年的核心条件是什么

闰年不是简单看能否被 4 整除,C++ 中必须严格按公历规则:能被 4 整除但不能被 100 整除,或者能被 400 整除。漏掉任一条件都会错判,比如 1900 能被 4 和 100 整除,但不能被 400 整除,所以不是闰年;而 2000 是闰年。

用 if-else 写最清晰的判断逻辑

别用嵌套三目运算符硬凑一行,可读性和维护性差。直接拆成带注释的分支更稳妥:

bool isLeapYear(int year) {
    if (year % 400 == 0) return true;
    if (year % 100 == 0) return false;
    if (year % 4 == 0) return true;
    return false;
}
  • year % 400 == 0 优先级最高,覆盖世纪闰年特例
  • year % 100 == 0 紧随其后,排除普通世纪年(如 1900)
  • year % 4 == 0 放最后,处理常规闰年(如 2024)
  • 所有整数取模操作在 C++ 中对负数行为未定义,确保 year 为正整数

用单个 return 表达式也行,但要注意运算符优先级

如果坚持写成一行表达式,必须加括号明确逻辑分组,否则 &&|| 的结合性容易出错:

return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
  • 不加括号写成 year % 4 == 0 && year % 100 != 0 || year % 400 == 0 语法合法,但易误读
  • && 优先级高于 ||,实际等价于上式,但靠记忆优先级不如显式括号可靠
  • 该写法在 C++17 及以后无性能差异,编译器会优化成相同汇编

测试时容易忽略的边界年份

只测 200020242100 不够,这几个年份才是关键验证点:

论论App
论论App

AI文献搜索、学术讨论平台,涵盖了各类学术期刊、学位、会议论文,助力科研。

下载

立即学习C++免费学习笔记(深入)”;

  • 1600:能被 400 整除 → 是闰年(验证世纪闰年)
  • 170018001900:能被 100 整除但不能被 400 整除 → 都不是闰年
  • 2024:能被 4 整除且不能被 100 整除 → 是闰年
  • 0 或负数:标准 C++ 不定义公元 0 年,输入前应校验非正年份是否允许

闰年逻辑本身很简单,真正容易翻车的是对“世纪年”和“400 年周期”的理解偏差,而不是代码写法。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1503

2023.10.24

Go语言中的运算符有哪些
Go语言中的运算符有哪些

Go语言中的运算符有:1、加法运算符;2、减法运算符;3、乘法运算符;4、除法运算符;5、取余运算符;6、比较运算符;7、位运算符;8、按位与运算符;9、按位或运算符;10、按位异或运算符等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

233

2024.02.23

php三元运算符用法
php三元运算符用法

本专题整合了php三元运算符相关教程,阅读专题下面的文章了解更多详细内容。

87

2025.10.17

if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

783

2023.08.22

go语言 注释编码
go语言 注释编码

本专题整合了go语言注释、注释规范等等内容,阅读专题下面的文章了解更多详细内容。

0

2026.01.31

go语言 math包
go语言 math包

本专题整合了go语言math包相关内容,阅读专题下面的文章了解更多详细内容。

1

2026.01.31

go语言输入函数
go语言输入函数

本专题整合了go语言输入相关教程内容,阅读专题下面的文章了解更多详细内容。

1

2026.01.31

golang 循环遍历
golang 循环遍历

本专题整合了golang循环遍历相关教程,阅读专题下面的文章了解更多详细内容。

0

2026.01.31

Golang人工智能合集
Golang人工智能合集

本专题整合了Golang人工智能相关内容,阅读专题下面的文章了解更多详细内容。

1

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
C# 教程
C# 教程

共94课时 | 8.1万人学习

C 教程
C 教程

共75课时 | 4.3万人学习

C++教程
C++教程

共115课时 | 15万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号