63---数字周期性状态检验
本次代码改造与实践收获1. 夯实C语言基础语法规范明确了 main 函数的标准写法必须为 int main() ,认识到 <conio.h> 等头文件与库函数的依赖关系,避免因遗漏头文件导致函数未定义的编译错误;掌握了 continue 、 break 等循环控制关键字的精准用法,理解其在程序交互逻辑中的核心作用。2. 深化模块化编程与结构化数据思想体会到自定义函数(如 days 函数)拆分复杂功
摘要
本文章是基于课程报告选题#63.c这一古早代码的现代化,使其能在现代化编译器下能正常运行。本文针对“三天打鱼两天晒网”的周期性行为判定问题,设计并实现了一款基于C语言的日期状态查询程序。程序以1990年1月1日为行为起始点,通过自定义结构体存储日期信息,结合闰年平年的判定规则,编写天数计算函数实现目标日期与起始日期的总间隔天数统计;再利用模5运算的周期特性,将总天数余数映射为“打鱼”或“晒网”两种状态。程序通过循环结构实现多组日期的连续查询,并添加输入合法性校验模块,确保输入日期在合理范围内。测试结果表明,该程序能准确、高效地完成任意指定日期的行为状态判定,有效融合了结构体、自定义函数、循环分支等C语言核心知识点,为解决同类周期性日期问题提供了简洁通用的实现思路。
1.选题与准备
1.1选题
在课程发布的Gamebar文件夹中选择63号文件夹。
1.2环境准备
- 操作系统:Windows 11
- 编译器:Dev C++ VsCode
- 辅助工具:百度 billbill AI工具 CSDN网站
2.编译调试过程
2.1初始编译及错误分析
将63.c文件使用Dev c++软件打开,尝试进行初步编译得到错误原因

- 未定义函数 getch()
- 错误位置: main 函数中两处 getch();
- 错误原因: getch() 属于 <conio.h> 头文件的库函数,代码中未包含该头文件,编译器无法识别。
- main 函数返回值类型错误
- 错误位置: void main()
- 错误原因:C语言标准中, main 函数的返回值类型必须是 int , void main 是非标准写法,部分编译器(如Dev-C++)会报警告或错误。
- 闰年判断逻辑缺少括号
- 错误位置: lp=day.year%4==0&&day.year%100!=0||day.year%400==0;
- 错误原因:逻辑运算符 && 优先级高于 || ,但该写法易读性差,若格式混乱可能导致判断错误(比如添加其他条件时)
2.2错误修正
针对如上问题进行修改:
1.修改方案:在代码开头添加头文件:
#include<conio.h>
2.修改方案:将 void main() 改为标准写法:
int main()
并在函数末尾添加返回语句:
return 0;
2.3反复调试
经过反复测试,改正后的代码无报错

3.代码理解及重命名
3.1运行测试:

选择当天日期进行测试,结果无误并准确运行
3.2代码解析
代码流程图如下

程序本质是日期转天数 + 周期模运算的组合应用。以 1990年1月1日 为时间起点,先计算目标日期与起点的总间隔天数,再利用 5天 一个打鱼晒网的周期,通过 总天数%5 的余数映射状态(余数 1-3 打鱼,0、4 晒网)
4.使用VsCode管理项目
4.1下载VsCode
在billbill上搜索VsCode下载教程,操作后下载VscCode以及c语言环境所需要插件
配置gcc编译器
4.2在VsCode上运行程序

5.代码版本管理
5.1注册Gitee账号并创建Gitee仓库
5.2代码成功上传至gitee仓库
6.总结
本次代码改造与实践收获
1. 夯实C语言基础语法规范
明确了 main 函数的标准写法必须为 int main() ,认识到 <conio.h> 等头文件与库函数的依赖关系,避免因遗漏头文件导致函数未定义的编译错误;掌握了 continue 、 break 等循环控制关键字的精准用法,理解其在程序交互逻辑中的核心作用。
2. 深化模块化编程与结构化数据思想
体会到自定义函数(如 days 函数)拆分复杂功能的优势,通过将“日期转天数”的核心逻辑封装为独立函数,降低了代码耦合度;掌握了 struct 结构体封装相关数据的方法,提升了代码的可读性与可维护性。
3. 掌握周期性问题的通用解题思路
熟练运用日期差值计算 + 模运算的组合方案解决周期性行为判定问题,理解闰年判定规则在日期计算中的关键作用,学会通过静态数组存储固定数据(如平闰年每月天数)以优化内存使用。
4. 提升代码调试与问题排查能力
学会定位编译错误(如函数未定义、非标准语法)与潜在逻辑隐患(如表达式优先级歧义),掌握针对性的修正方法;培养了从“功能实现”到“规范优化”的代码思维,重视代码在不同编译器环境下的兼容性。
更多推荐
所有评论(0)