C语言I博客作业06
这个作业属于那个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-2/homework/11557 |
我在这个课程的目标是 | 巩固旧知识,进一步掌握switch语句 |
这个作业在那个具体方面帮助我实现目标 | PTA作业的完成和分析,对知识和自己的总结 |
参考文献 | C语言程序设计 |
1.PTA实验作业(20分/题)
1.1 计算天数
题目内容描述:本题要求编写程序计算某年某月某日是该年中的第几天。
1.1.1数据处理
数据表达:用了变量year,month,day,x,y,z;均为整型变量。
year表示输入的年,month表示输入的月,day表示输入的日。x表示输入年份除4的余数,y表示输入年份除100的余数,z表示输入年份除400的余数。
数据处理:表达式:x = year % 4; y = year % 100;z = year % 400;用了if语句的嵌套,switch语句,顺序结构。
1.1.2 实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
2009/03/02 | 61 | 3月2日是2009年中的第61天 |
2000/03/02 | 62 | 3月2日是2000年中的第62天 |
2001/10/21 | 294 | 10月21日是2002年中的第294天 |
2002/03/08 | 67 | 3月8日是2002年中的第67天 |
** | ||
1.1.4 PTA提交列表及说明 ** | ||
提交列表说明:
部分正确:“闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。”表达错误。
解决方法:改为"if(x == 0 && y != 0 || z == 0)"。
部分错误:忽略了7,8月份均有31天,且出现计算错误。
解决方法:将运算过程的数据改写。
1.2 前天是哪天
题目内容描述:本题目要求读入年、月、日,然后判断前天日期。
1.2.1数据处理
数据表达:用了变量y,m,d,a,b,c;均为整型变量。
y表示输入的年,m表示输入的月,d表示输入的日。a表示输入年份除4的余数,b表示输入年份除100的余数,c表示输入年份除400的余数。
数据处理:表达式:a = y % 4; b = y % 100;c = y % 400; m=m+11; m=m-1; d=d+27; d=d+28; d=d+29;
用了if语句的嵌套,switch语句,顺序结构。
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
2020 10 16 | 2020-10-14 | 2020年10月16日前天为2020年10月14日 |
2020 1 2 | 2019-12-31 | 2020年1月2日前天为2019年12月31日 |
2020 3 2 | 2020-2-29 | 2020年3月2日前天为2020年2月29日 |
2019 3 2 | 2019-2-28 | 2019年3月2日前天为2019年2月28日 |
2000 3 1 | 2000-2-28 | 2000年3月1日前天为2000年2月28日 |
** | ||
1.2.4 PTA提交列表及说明 ** |
提交列表说明:
编译错误:没有理清楚题目,思路不清晰,导致过程出现错误。
解决方法:多次仔细阅读题目,理清思路,改写代码。
答案错误:忽略了7,8月份均有31天,且出现计算错误。
解决方法:将运算过程的数据改写。
2.代码互评(5分)
题目1:前天是哪天
题目内容描述:本题目要求读入年、月、日,然后判断前天日期。
同学代码截图1
自己代码截图1
1.我与同学都是用了if语句的嵌套和switch语句。同学的代码是最后再进行输出,与我的有所不同,同学的显然更简便,值得我学习。
2.我认为同学的"if(dd>2){ }"这一部分是不需要用switch语句来进行分类讨论的,因为当dd>2时,日期的前一天月份不会改变,是不是闰年对此也没有影响。
3.同学对月份变化的表达是直接将数据算出,而我对其是通过表达式计算,而我与同学对日的表达则恰恰反了过来。我认为直接写成数据更简便,通过表达式计算则更易理解运算过程。
题目2: 根据输入的数字,输出需要上课的节数。
题目内容描述:
同学代码截图2
自己代码截图2
1.同学用的是else-if语句,我用的是switch语句,个人觉得同学的更好理解,自己的比较简便。
2.同学将星期六和星期天的合在一起,这一点值得学习,并利用到之后的代码中。
3.同学的排版很清晰明了,有适当的空行,我应该多注意这方面。
3.学习总结(15分)
3.1 学习进度条(5分)
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第一周 | 10h | 76 | 基本格式,定量定义,输入输出 | |
第二周 | 20h | 249 | 赋值,算数运算,if-else语句 | 一些格式不太理解 |
第三周 | 25h | 358 | for循环语句 | 理解但不太会运用 |
第四周 | 30h | 500 | 函数的调用,自定义函数 | 实参,形参不太理解。不太会定义函数 |
第五周 | 35h | 580 | 二分支结构及多分支结构,if-else语句及else-if语句,字符型变量的运用 | 数学函数的使用 |
第六周 | 37h | 650 | switch语句,多分支结构 | 对switch语句掌握得不够熟练,遇到分类讨论的题时思路不清晰 |
** | ||||
3.2 累积代码行和博客字数(5分)** | ||||
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
3.3.2 学习体会
①经过一周的学习,了解了switch语句,学习了多分支结构,但还没有值得完全掌握。
②对博客园的使用,markdown的语法更加熟练,对作业的排版有了更高要求。
③现在学习的知识越来越难,我接下来要多练习,补齐自己的短板的同事好好学习新知识。
④接下来的一周。我计划练习双分支结构和多分支结构,掌握switch语句,锻炼解题思维,逻辑能力。
⑤对自己代码的排版还是要多加注意,要更清晰明了。