C语言Ⅰ博客作业06

这个作业属于哪个课程 C语言程序设计II
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2020-4/homework/11559
我在这个课程的目标是 学会用switch语句解决情况多样化问题
这个作业在哪个具体方面帮助我实现目标 PTA上面的题目以及对代码的反思和总结
参考文献 C语言程序设计 CSDN
学号 20209058

1.PTA作业

1.1 前天是哪天

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

1.1.1 数据处理


数据表达:将年月日分别定义为整型year,month,date.
数据处理:运用switch和if语句将月份不同和date-2大于小于等于0的情况分隔开,再在这几种不同的情况里计算前天的值

1.1.2 实验代码截图

1.1.3 造测试数据

输入数据 输出数据 说明
2020 10 16 2020-10-14 date>2的情况
2020 1 1 2019-12-30 date<2&&month=1
2020 3 1 2020-2-28 day<2&&month=3 year为闰年

1.1.4 PTA提交列表及说明

1.部分正确:date<=2,month=1的时候显示答案错误,其他情况都显示正确
2.答案正确:在case 1的情况下,忘记加入year=year-1的语句,添加后就正确了

1.2 多分支表达-倍数问题

键盘输入1个正的整数A,如果A是3的倍数但不是5的倍数,则输出A除以5的余数。如果A是5的倍数但是不是3的倍数,则输出A除以3的余数。如果A既不是5的倍数但也不是3的倍数,输出A除以15的余数

1.2.1 数据处理

数据表达:定义一个整型A
数据处理:利用switch语句将A%3分成是否等于0这两种情况,再用if语句对A是否能被5整除做判断,在这几种不同的情况下输出相应的值

1.2.2 实验代码截图

1.2.3 造测试数据

输入数据 输出数据 说明
28 13 不是3的倍数也不是5的倍数
18 3 3的倍数但不是5的倍数
10 1 5的倍数但不是3的倍数
-1 非正整数

1.2.4 PTA提交列表及说明

1.编译错误:在if语句后的结尾处少了个声明语句}
2.答案正确:加上后就正确了,果然需要细心

2.代码互评

同学1代码

同学2代码

我的代码

1.第一位同学使用了数组存放每个月的天数,再用for循环将每个月的天数累加,直到前一个月,代码看起来既简洁又具有可读性
2.第二位同学先将是否是闰年分成两种情况,再分别使用switch,虽然看起来通俗易懂,把情况分得很细致,但完全可以再简化一下
3.我的是将if写在switch里面去判断闰年问题,虽然不显得啰嗦,但没用数组那般简洁明了

3.学习总结

3.1 学习进度条

周/日期 这周所花的时间 学到的知识点简介 目前比较困惑的问题
11/23-11/29 8h if和switch语句的嵌套使用 switch里的常量表达式该怎么用才能把所有情况都分得到且显得简洁易懂

3.2 累积代码行和博客字数

3.3 学习内容总结和感悟

3.3.1 学习内容总结

3.3.2学习体会

  • 语句能解决if的多分支结构的复杂性,且将所有情况例举出来显得简洁又通俗易懂
  • 虽然switch很好用,但不一定是解决问题的最佳方法,我们不要局限于它,在解决多分支问题时,可尝试用多种方法去思考并解决它
  • 学习c完全是靠自己,遇到一些不太懂的知识点或问题只能自己花时间去弄清楚,只有这样才会有进步
posted @ 2020-11-28 11:53  GitHub$  阅读(147)  评论(6编辑  收藏  举报
/* 点击爆炸效果*/
/* 鼠标点击求赞文字特效 */ /*鼠标跟随效果*/