C博客作业01--分支、顺序结构
0.展示pta总分
1.本章学习总结
1.1学习内容总结
1.2本章学习体会
- 上课的时候有时会跟不上,节奏太快,还在思考上一个问题的时候就开始讲下一个了。除此之外就是pta上的题目经常出错,有时候也不知道错在哪,调试了半天找不到问题所在。
- 每天只有40行到50行,有pta作业的时候可以达到预期的100行左右。
2.pta实验作业
2.1c-03最佳情侣身高差
2.1.1数据处理
数据表达:定义整数N和i,定义一个字符型变量ch,定义用户的身高height和配偶的身高heightCouple,并赋予初始值
数据处理:第一行输入正整数N代表用户的个数,也是for循环的次数;利用getchar清除回车,使两个scanf运行不出错;再输入性别和用户身高,分别赋值给ch和height,
根据性别带入不同的公式进行运算,并输出配偶heightCouple的身高
2.1.2代码截图
2.1.3本题可扩展功能
- 可计算多个不同性别的配偶的身高差
2.1.4pta提交列表及说明
- Q1:答案错误,重新通过VS发现里面显示0.00161(应该是这个数字,记不太清了)
- A1:循环体里的错误运算导致,给height和heightCouple添加初始值0后就不再出现
- Q2:格式错误,经过VS反复实验,发现第一个scanf和第二个scanf之间总是会出现问题,导致输入的N为2,循环体只执行一次的问题。
- A2:这题是问度娘的,在循环体里加入一句getchar后解决问题,同时在printf里面加上\n解决格式错误
2.2c-02计算天数
2.2.1数据处理
数据表达:定义年year月month日day,定义天数date,定义中间量temp
数据处理:输入赋值年月日year,month,day;进入判断是否是闰年,同时根据月份的特殊性在2月,2到8月,8月以上建立分支,分别以不同的公式去运算
2.2.2代码截图
2.2.3本题可扩展功能
- 利用该代码可以算出某年某月某日是该年的第几天,对代码改编后可以根据天数,反推这是该年的几月几日,前提要知道是否是闰年
2.2.4pta提交列表及说明
- 这题虽然做对了,但却是我花的时间最久,也是最后做的一题,因为对特殊月份的算法很纠结,导致我在VS上屡屡出错,最开始的代码甚至快要100行,因为一开始是用case一句句写的,后来自己觉得不满意,又用if改写,实验多次后才缩短到40行,但我觉得还是太多,闰年的判断位置我会再思考放在其他位置会不会让代码更简练。因为我实力不足,所以第一次遇到这种需要比较大量的代码量的题目会显得力不从心,所以对这题印象比较深刻。
2.3c-02输出三角形面积和周长
2.3.1数据处理
数据表达:定义三角形的三条边,三个整数a,b,c,定义浮点型数据面积area,周长perimeter
数据处理:输入三角形的三边,根据任意两边之和大于第三边判断是否是三角形,如果是则根据公式算出area和perimeter并输出,不是则输出These sides do not correspond to a valid triangle
2.3.2代码截图
2.3.3本题可扩展功能
- 本题是进行整数的单个三角形的判断,通过改写代码可以利用for或者while循环利用scanf同时进行多个三角形的判断
2.3.4pta提交列表及说明
- Q:部分正确具体只有非三角形是正确的
- A:因为在打代码的时候area和perimeter的定义成了整型数据,后来改成了double浮点型数据就正确了
3.阅读代码
- 代码功能:用1234四个数组合,输出所有互不相同且无重复数字的三位数
- 代码优点:运用三重循环,解决了原本需要大量代码的运算。代码精简,不会过于冗长,值得初学者去揣摩。