C语言实现:判断‘三天打鱼两天晒网’的日期
需积分: 9 90 浏览量
更新于2024-11-21
收藏 13KB TXT 举报
"C程序设计经典设计2"
本资源是一个关于C语言编程的实例,旨在解决一个有趣的日期问题,即“三天打鱼两天晒网”的周期性问题。问题描述了一个从1990年1月1日开始的人,按照“三天打鱼两天晒网”的规律生活,需要计算在未来的某一天这个人是在“打鱼”还是“晒网”。下面将详细解释这个问题的解决步骤和C语言实现的关键点。
1. **日期计算**:首先,我们需要计算从1990年1月1日到给定日期的总天数。这涉及到对每个月天数的处理,特别是要考虑闰年的情况。闰年的判断规则是:年份能被4整除但不能被100整除,或者能被400整除的年份是闰年。在C语言中,我们可以使用条件表达式和求余运算符(%)来实现这一逻辑。
2. **周期处理**:计算出总天数后,我们将这个数值除以5,因为“打鱼”和“晒网”的周期是5天。使用取模运算符(%)获取余数,如果余数是1、2或3,那么表示这一天他在“打鱼”,否则就是在“晒网”。
3. **程序实现**:给出的C代码包含一个主函数(`main()`)和一个辅助函数(`days()`)。主函数负责接收用户输入的日期,并调用`days()`函数计算指定日期前的总天数。`days()`函数通过一个静态数组`day_tab`存储不同月份的天数,根据闰年条件动态调整2月的天数。然后,对于给定的日期,累加所有月份的天数得到总天数。
4. **输入输出**:程序提示用户输入年/月/日,然后输出结果。如果余数在1到3之间,程序打印“hewasfishingatthatday.”(他在那天打鱼),否则打印“Hewassleepingatthatday.”(他在那天晒网)。
5. **优化点**:为了简化代码,可以考虑使用C库中的日期处理函数,如`mktime()`和`difftime()`,但这可能使得问题的解析稍复杂,不适合初学者。在给定的实现中,手动计算日期天数和闰年判断更具教学价值。
这个程序实例展示了如何在C语言中处理日期计算,以及如何用结构体(`struct date`)存储日期,同时涉及了条件语句、循环和数组等基本语法。这是一个很好的学习C语言和日期处理的实践案例。
2010-06-07 上传
112 浏览量
952 浏览量
1295 浏览量
2562 浏览量
1183 浏览量
1252 浏览量
ouyanxia
- 粉丝: 18
- 资源: 2
最新资源
- JHU荣誉单变量微积分课程教案介绍
- Naruto爱好者必备CLI测试应用
- Android应用显示Ignaz-Taschner-Gymnasium取消课程概览
- ASP学生信息档案管理系统毕业设计及完整源码
- Java商城源码解析:酒店管理系统快速开发指南
- 构建可解析文本框:.NET 3.5中实现文本解析与验证
- Java语言打造任天堂红白机模拟器—nes4j解析
- 基于Hadoop和Hive的网络流量分析工具介绍
- Unity实现帝国象棋:从游戏到复刻
- WordPress文档嵌入插件:无需浏览器插件即可上传和显示文档
- Android开源项目精选:优秀项目篇
- 黑色设计商务酷站模板 - 网站构建新选择
- Rollup插件去除JS文件横幅:横扫许可证头
- AngularDart中Hammock服务的使用与REST API集成
- 开源AVR编程器:高效、低成本的微控制器编程解决方案
- Anya Keller 图片组合的开发部署记录