C语言I博客作业06

作业头

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/CST2020-4
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2020-4/homework/11559
我在这个课程的目标是 熟练掌握swicth,同时运用多种分支结构解决相应的问题
这个作业在那个具体方面帮助我实现目标 学习了新的分支语句switch
参考文献 B站 百度《C语言程序与设计》
学号 20209043

1.PTA实验作业(20分/题)

1.1 题目名1 计算天数

本题要求编写程序计算某年某月某日是该年中的第几天。

1.1.1数据处理:

数据表达:用了整型 Int 定义了year, month, day , days, i;
数据处理: 开始用了【for(i = 1; i < month; i++) {switch(i) { }}】for循环和switch的分支结构,目地是为了求天数之和,并将几个月份给的天数给表示出来。还用了if((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))days += 29;else days += 28来判断是否为闰年;用了if和else的分支结构。

1.1.2实验代码截图

1.1.3 造测试数据:

输入数据 输出数据 说明
2009/03/02 61 题目的样例数据
2000/03/02 62 题目的样例数据
2019/11/29 333 2019不是闰年,所以天数之和从一月到十一月
2020/11/29 334 2020是闰年,所以天数比去年多一天

1.1.4 PTA提交列表及说明

编译错误:原因很简单,提交之前我认真检查流程的顺序,没有错误之后才提交的,结果编译错误,心想肯定是细节出错了,很快,if()括号里的等于要写两个!!!

编译正确:改了之后就对了,我现在真正的发现,pta的编译错误并不是你的流程控制错误,而是一般细节错误。这次pta的第二题才是真的离谱,一个“!”竟然要分中英文,天天纠这种错误!!!

1.2 题目名1:前天是哪一天

本题目要求读入年、月、日,然后判断前天日期。

1.2.1数据处理

数据表达:用了整型int year ,month ,day , d 来定义这四个变量。
数据处理:表达式switch(month-1){}来表示12个月份的天数,if((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) d= 29;else d= 28; }用来判断闰年。之后有用了三个if来判断特殊情况
if(day>2){day=day-2;}
if(day<=2 && month>1){ month-=1;day=d-day%2;}
if(day<=2 && month==1){year-=1;month=12;day=31+2-day;}从而计算前天

1.2.2实验代码截图

1.2.3 造测试数据

输入数据 输出数据 说明
2020 11 29 2020-11-27 满足三个if条件的第一个if(day>2)
2020 11 2 2020-10-30 满足三个if条件的第二个if(day<=2 && month>1)
2020 1 1 2019-12-30 满足三个if条件的第三个if(day<=2 && month==1)
2020 3 1 2020-2-28 满足闰年和第二个if

1.2.4 PTA提交列表及说明

部分正确:开始时,我想用特殊情况的这个表达day=d-day%2;用于第三个,结果来了个部分正确,改了好久都是部分正确,我就对题目给的每个数据进行测试,结果测试2020-1-2的时候,测试结果为2019-12-0这个结果,所以错误所在最后一个的判断上,我就改成了day=31+2-day;这个表达式。

答案正确:写成这个表达式之后就对了。

2.代码互评(5分)

同学代码截图
同学1:

——————————————————————————————————————————
同学2:

自己代码截图

比较:

一:同学1:运用了以后所学习的数组知识,查阅之后发现数组=类型说明符+数组名[常量表达式];数组正好可以使每个月份简单的表示,让代码变得简单。通过观看别人的代码,一是可以学习别人好的地方,而是可以发现你的代码优越在哪里,差距在哪里。弥补自己学习上的不足。

二:同学2:她通过把前面的几个月份的天数相加在一起,虽然很容易被理解,但是我不喜欢自己去算而是让计算去算,学习计算机目的就是让它帮助你去算,而不是自己去算,如果算数很大,不会被算死。优点就是容易,不费脑。

三:自己在switch上的巧妙排序让我觉得这题我的成功之处。

3.学习总结(15分)

3.1 学习进度条(5分)

周/日期 这周所花的时间 代码行学到的知识点 简介目前比较迷惑的问题
11/1——11/8 15h pow(),sqrt() 函数数据控制输出
11/9——11/15 17h 函数 函数的被动定义
11/16——11/22 18.5h 分支结构 字节变量的使用
11/23——11/29 14h switch的分支结构

3.2 累积代码行和博客字数(5分)

3.3 学习内容总结和感悟(5分)

3.3.1 学习内容总结

3.3.2 学习体会

答:

1.本周得学习内容还是比较简单,毕竟只有一个知识点,一周弄一个知识点对于我来说相对比较容易。
2.开始学switch时比较迷茫,毕竟学的是新东西,而学会之后就觉得简单了。【我感觉我是在被动接受知识,没有主动去学习,老师教到哪里我就学到哪里,没有提前学习的习惯,而且在代码上的时间我不满意,太少了!!!这周我在学习上少了点激情,而做其他却每天都不会忘记,每天都玩。(这些东西都懂:抖音,王者等一些浪费时间的,删掉了有下载,唉😔)。
posted @ 2020-11-29 19:56  w庆  阅读(116)  评论(1编辑  收藏  举报