C语言I博客作业06
作业头
这个作业属于哪个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | <作业的链接> |
我在这个课程的目标是 | 熟练使用多分支结构switch语句 |
这个作业在那个具体方面帮助我实现目标 | pta作业的严格要求,提高逻辑思考能力。 |
参考文献 | 《C语言程序与设计》、《C Primer Plus》、百度 |
学号 | 20209038 |
1.PTA实验作业(20分/题)
-
1.1 7-3 计算天数
输入格式:
输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。
输出格式:
在一行输出日期是该年中的第几天。
1.1.1 数据处理
- 数据表达:
定义year, month, day等整型变量 - 数据处理:使用switch语句和if语句,还有表达式sum = day + sum;先用switch语句列出来每月基础的天数再通过表达式sum = day + sum;加上这月日子的天数获得此日期的是为本年的第几天。再用if语句对于闰年这种特殊情况进行处理。
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
2009/03/02 | 61 | 平年测试 |
2000/03/02 | 62 | 闰年测试 |
1.1.4 PTA提交列表及说明
提交列表说明:
1.编译错误。万恶的输入法,打代码总要中英转换,但是转换容易忘记导致符号使用中文符号。这个又是容易忽略的,而且用肉眼很难观察出来的错误。
2.部分正确。if语句条件没有分具体。忽略了能被400整除的情况。
3.编译错误。未来方便观察符号错误把代码复制到了VS2019来检查,检查完后,搬过来忘记把scanf_s()改成scanf().导致编译错误。
4.答案正确。这道题还是得亏,周宽大佬给予提示。才有着清晰的思路,使用pta错误次数不多也没出现什么大的错误。
1.2 7-4 前天是哪天
本题目要求读入年、月、日,然后判断前天日期。
输入格式:
在一行中输入年、月、日。(日期为有效日期)
输出格式:
输出前天日期,格式形如2020-10-16
1.2.1 数据处理
- 数据表达:定义了y,m,d,sum整数型变量
- 数据处理:基本思路与计算天数相同但有些变化,先用switch语句把会退后2天后可能出现的基础日数列出来,再用if语句细化分类,最后得到结果。其中if细化分类的时候逻辑实录一定要清晰明了,不然容易分着分着把自己弄糊涂了。
1.2.2 实验代码截图
1.2.3
输入数据 | 输出数据 | 说明 |
---|---|---|
2020 10 16 | 2020-10-14 | day大于2 |
2020 1 2 | 2019-12-31 | day小于2,month等于1 |
2020 3 2 | 2020-2-29 | day小于2并且month等于3 year为闰年 |
2019 3 2 | 2019-2-28 | day小于2并且month大于2 year为非闰年 |
1.2.4 PTA提交列表及说明
提交列表说明:
1.部分正确。这道题好难啊,if分条件容易漏,改了好几次。
- 忽略月数为3当日数小于2的情况,而且为闰年的可能
- 忽略日子小于2而且月数等于3而且非闰年情况也是需要细分的。
3.编译错误。多次部分正确,改得有点心急了,导致漏符号。
2.答案正确。大体思路和计算天数类似,但又有变化。而且if分类难度也加大了。
2.代码互评(5分)
- 同学代码截图
同学1的代码
同学2的代码
-
自己截图
-
比较:
-
第一位同学运用了数组,代码相对于我们的代码简洁很多很多。
-
第二位同学运用了switch语句和if语句,其中还有switch语句中嵌套if语句。思维非常严谨细致,但是思路略显示复杂。
-
我自己的代码相对与第二位同学思路简单一些,个人认为我的代码会比第二位同学的代码更容易理解一些。但从简洁程度还是不如第一位同学。
3.学习总结(15分)
3.1 学习进度条(5分)
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
11/23——11/30 | 14h | 538 | switch语句 | 有很多题单纯用switch代替if语句很难,没有思路 |
3.2 累积代码行和博客字数(5分)
时间 | 博客字数(字符) | 代码行数 |
---|---|---|
第一周 | 772 | 386 |
第二周 | 1108 | 578 |
第三周 | 3245 | 643 |
第四周 | 3503 | 430 |
第五周 | 3943 | 675 |
第六周 | 3736 | 538 |
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
3.3.2 学习感悟
感悟:
- 1.这周的题目对于逻辑思考能力比较高。有好的思路那么代码就会相对简洁很多,如果没有好的思路那么代码就会非常繁杂。
- 2.要平时有把事情分解分布安排的习惯。就好如把大象放进冰箱里。刚开始的时候我们想到的步骤和思路都很繁杂从而感到无从下手,但是经过提炼后就会很清晰的把着给问题分为3步来解决,这样就清晰了很多。
- 3.感觉这次作业比较友好,题目难度大体上是递增的。而且后面一道题目解法思路是在前面一道题目基础上的。有种前面题目就相当与后面一道题的提示。降低了难度。