C语言100例之第4例
爱学习的酷侠

C语言100例之第4例

酷侠 努力赚钱ing
1天前发布 /正在检测是否收录...

每日一图

次元阁提供图片


今天的第4例不算特别难,看自己怎么想,我认为可以走多种路线来实现$[泡泡表情]::(滑稽)
看看题目:输入某年某月某日,判断这一天是这一年的第几天?
结果示例:
请输入年份、月份和日期(格式:年 月 日):2024 3 5
2024年3月5日是该年的第65天
官方答案:

其实我感觉难点就是闰年的算法,闰年不仅仅是4年一轮这么简单
看看豆包这么说的:
地球绕太阳转一圈(回归年)大约是 365.2422 天,但我们的日历年只能按整数天算(365 天)。这样一来,每年就会多出约 0.2422 天,累积 4 年就差不多多 1 天(0.2422×4≈0.9688 天,接近 1 天)。
所以最初的规则是:每 4 年加 1 天(2 月 29 日),这就是 “每 4 年一个闰年” 的由来,目的是让日历年和季节对齐。
二、问题来了:“每 4 年一闰” 有点 “矫枉过正”
如果只按 “每 4 年一闰” 算,每年会多算一点点:0.9688 天≠1 天,每年多算了约 0.0312 天。看似不多,但累积 100 年就会多算约 3.12 天(0.0312×100≈3.12)。
这样下去,过几百年,节气就会和日期严重脱节(比如夏天变春天)。所以必须加一个 “修正规则”:能被 100 整除的年份,不算闰年,这样可以抵消多算的 3 天左右。
看看我的答案

屏幕截图 2025-10-23 221244.png

喜欢就支持一下吧
点赞 0 分享 赞赏
评论 共2条
OωO
取消
  1. 头像
    过路之客
     · 
    回复

    欢迎大佬补充$[泡泡表情]::(玫瑰)

  2. 头像
     · 
    回复

    画图

SSL