C语言I博客作业06
作业头
这个作业属于哪个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-4/homework/11559 |
我在这个课程的目标是 | 学会switch语句,本次作业拿到满分 |
这个作业在那个具体方面帮助我实现目标 | 作业的严格要求和PTA的精选题集 |
参考文献 | 《C语言程序与设计》,百度 |
学号 | 20209078 |
1.PTA实验作业(20分/题)
1.1 前天是哪天
在一行中输入年、月、日。(日期为有效日期)
1.1.1 数据处理
①数据表达:定义了整形变量y,m,d,sum。
②数据处理:表达式:【switch(m-1){case m: sum = x; break; }】、m表示月数,x表示该月的天数。再利用if语句分别写出day>2、day<=2,month=1、day<2&&month=3 year为闰年、day<2&&month=3 year为非闰年的情况。
1.1.2实验代码截图
1.1.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=3 year为非闰年 |
1.1.4 PTA提交列表及说明
提交列表
提交列表说明:
1.编译错误:输入法问题,引号全打的中文。一度认为只有一部分所以提交了三次,过于自信了emmmmm...
2.部分正确:if的顺序不同导致的,看来要更严谨一点才行。改了我好久。大意了,我没有想。
3.答案正确:更正后答案正确。
1.2 计算天数
输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。
1.2.1 数据处理
①数据表达:定义了整形变量y,m,d,days和一维数组a[]。
②数据处理:利用if判断是否为闰年并替换二月的天数。再通过for循环将数组里单个数相加,再与输入的数值相加得到总天数。表达式【for(int i=0;i<m-1;i++){days+=a[i];}days+=d;】
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
2009/03/02 | 61 | 非闰年跨2月 |
2000/03/02 | 62 | 被400整除的闰年跨2月 |
2020/03/02 | 62 | 普通闰年跨2月 |
1900/05/20 | 140 | 被100整除的非闰年跨4月(大小月) |
2013/10/20 | 293 | 非闰年跨9月(7-8月大) |
2012/2/20 | 51 | 闰年1月 |
2013/2/20 | 51 | 非闰年1月 |
1.2.4 PTA提交列表及说明
提交列表
提交列表说明:
1.部分正确:没有系统地学数组,不知道a[i]是从a[0]开始还是a[1]开始,之前一直写的是if(y%400==0||(y%4==0&&y%100!=0)) a[2]=29;
2.编译错误:其实只能算一次,因为我提交后没看清提示就把它关了,后面只好再提交一次。其实就是移动语句的时候漏了一个;在下面。
3.答案正确:答案总算对了啊。
2.代码互评(5分)
- 同学代码截图
同学一的作业
同学二的作业
-
自己代码截图
-
比较:
1.同学一的代码利用了数组,代替了switch,很强。
2.同学二的代码则相对长了。挺佩服他的,居然分情况一个一个地输出,确实也免去了讨论天数小于2的情况。有参卡价值。就是挺累人的
3.我用的是这周学的方法,也有可取之处。就是看起来很长。
3.学习总结(15分)
3.1 学习进度条(5分)
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
10/12—10/18 | 40h | 581 | printf(),scanf()的用法,if-else的用法 | 无 |
10/19—10/23 | 33h | 617 | for循环 | 无 |
10/24—10/25 | 13h | 262 | do...while循环 | 无 |
10/26—11/1 | 15h | 458 | 自定义函数 | 无 |
11/2—11/8 | 19h | 144 | pow(),sqrt()函数 | 无 |
11/9—11/15 | 14h | 597 | 函数 | 如何改错,会调试了还是很慢,不熟练 |
11/16—11/22 | 21h | 241 | 分支结构 | 函数递归?还有如何替换字符串。C(gcc)和C(clang)的区别,什么情况叫做数组越界 |
11/23—11/29 | 29h | 868 | switch语句 | 我也不知道我从哪开始就懵了 |
3.2 累积代码行和博客字数(5分)
时间 | 博客字数 | 代码行数 |
---|---|---|
第一周 | 1951 | 879 |
第二周 | 1994 | 458 |
第三周 | 6917 | 144 |
第四周 | 1924 | 597 |
第五周 | 4553 | 641 |
第六周 | 3792 | 868 |
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
3.3.2 学习体会
学习内容总结:
- 本周我们学习了switch循环,避免了多分支时用十多个if导致的麻烦。
感悟:
- 不管题目难度如何,我都很难一次性做对,有点依赖PTA的提交结果了啊,一般我都是靠着它的提示改错的。看来我要多练练了啊。(估计又要下次一定了)
- 最近应该是飘了,总是好高骛远然后又搞了一些小事情,关键是同学和我自己都感觉我睡不醒,这就挺难受的,总感觉没什么收获。
- 毒鸡汤喝了不少的感觉,话说我最讨厌的就是高三开会说的什么迷茫期啊,瓶颈期啊,疲劳期啊。感觉太理论化,就很厌恶。不过我感觉我现在确实挺迷茫的,也不积极了,至少目前是寝室熄灯了还要我看代码一眼是根本不可能的了。