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作业中还存在着疑问,还需要花时间解决。

原文地址:https://www.cnblogs.com/Sxywjk/p/14050119.html