C语言I博客作业06
C语言程序设计 | 2020级计科三班 |
---|---|
作业的要求 | 作业要求 |
作业的目标 | 对所写代码以及同学代码进行分析,总结以及本周的学习体会 |
作业帮助我实现目标的方面 | 让我对switch语句更加了解,对于错误地方进行总结 |
参考文献 | C语言程序设计 |
学号 | 20209028 |
1.PTA实验作业
- 请再此处列出自己的排名图片
- 从PTA题目集中选出2个你最满意的题目完成以下内容
1.1 计算天数
本题要求编写程序计算某年某月某日是该年中的第几天。
输入格式:输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。
输出格式:在一行输出日期是该年中的第几天。
1.1.1数据处理
**数据表达**: 整型变量 y,m,d,num;
**数据表达式**: 赋值表达式,算术表达式,逻辑表达式;
**流程结构**: 选择结构,顺序结构,运用了switch语句;
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
2009/03/02 | 61 | sample1 非闰年跨2月 |
2000/03/02 | 62 | sample2 被400整除的闰年跨2月 |
2018/01/02 | 2 | 非闰年1月 |
2120/01/15 | 15 | 闰年1月 |
2021/09/21 | 264 | 非闰年跨9月(7-8月大) |
1.1.4 PTA提交列表及说明
**编译错误**:if-else语句中少打一个中括号,switch语句中分号不是英文版书写。
**部分正确**:scanf语句中格式控制符之间没有打“/”。
**答案错误**:在if语句中我写的是平年,在else语句中写的是闰年,输出结果显示为0;当我将两者对换位置,结果输出正确。
**疑问**:对于平年和闰年的先后顺序导致的答案错误,在这方面还存在着疑惑。
1.2 前天是哪天
本题目要求读入年、月、日,然后判断前天日期。
输入格式:在一行中输入年、月、日。(日期为有效日期)
输出格式:输出前天日期,格式形如2020-10-16
1.2.1 数据处理
**数据表达**: 整型变量 y,m,d;
**数据表达式**:赋值表达式,算术表达式,逻辑表达式;
**流程结构**: 选择结构,顺序结构,运用了switch语句;
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=3 year为非闰年 |
1.2.4 PTA提交列表及说明
**编译错误**:第一次写的时候是将跨月,跨年,闰年,平年分别考虑,写出来编译出现大大小小的错误,后来打算用另一种方式来表达这个核心思想。
**部分正确**:在一月份的1,2号的前天属于跨年的情况,在switch语句中,我未给y形成等式而导致输入结果错误。
2.代码互评
找2份同学代码,和自己代码比较,建议互评代码尽量找代码风格差异较大。
同学代码截图
自己代码截图
不同处:
我和同学一的代码整体差不多,只是我对于A除以15的余数进行了处理,之前未对15的倍数进行处理,结果显示错误。
同学二的代码运用了if-else语句解决问题,而我采用if-else的嵌套语句,嵌套的语句是switch语句
3.学习总结
3.1 学习进度条s
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
8/11.21-10.27 | 7小时 | 310行 | switch 语句 | 对于较复杂的if-else嵌套语句不能很好的理解 |
3.2 累积代码行和博客字数 | ||||
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
感受:这周的学习生活过得挺丰富多彩的,代码行逐渐增加,知识的储备更加充足,数学逻辑思维也逐渐变强,但还是存在着一些问题,每次博客作业要强调的细节问题,总是在无意之中会犯,PTA作业中还存在着疑问,还需要花时间解决。