一.作业头
这个作业属于哪个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | 作业05 |
我在这个课程的目标是 | 学会使用字符型的规则即用法,拓展自己在循环语句中的其他知识 |
这个作业在那个具体方面帮助我实现目标 | 在调试过程中的报错会促使我去寻找问题的答案,一步步修改,查询资料 |
参考文献 | 《C Primer Plus》 |
学号 | 20209032 |
二.本周作业
1.PTA实验作业(20分/题)
1.1 C程序设计 实验2-3-1 :身高预测。
- 每个父母都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成人后的身高的因素包括遗传、饮食习惯与体育锻炼等。小孩成人后的身高与其父母的身高和自身的性别密切相关。
设 faHeight为父亲的身高,moHeight为母亲的身高,身高预测公式为: 男性成人时身高=( faHeight+moHeight)×0.54 女性成人时身高=( faHeight×0.923+ moHeight)/2cm 此外,如果喜爱体育锻炼,那么身高可增加2%;如果有良好的卫生饮食习惯,那么身高可增加1.5%。
试编程从键盘输入用户的性别(用字符型变量sex存储,输入字符F或f表示女性,输入字符M或m表示男性)、父母身高(用实型变量存储,faHeight为父亲的身高,moHeight为母亲的身高)、是否喜爱体育锻炼(用字符型变量 sports存储,输入字符Y或y表示喜爱,输入字符N或n表示不喜爱)、是否有良好的饮食习惯(用字符型变量diet存储,输入字符Y或y表示良好,输人字符N或n表示不好)等条件,利用给定公式和身高预测方法对身高进行预测。
1.1.1
数据表达:使用了sex,sprots,diet,faHeight, moHeight,height六个变量;其中sex,sprots,diet,faHeight, moHeight是由scanf定义的值,height由后续的判断选择语句中的计算式对其赋值;其中sex,sprots,diet都为字符型,faHeight, moHeight,height为双精度浮点型。
数据处理:数据用到的表达式为赋值表达式,关系表达式,逻辑表达式;流程结构为if——else与if的分支结构
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
F 182 162 N N | 165.0cm | 当输入的是“N”时,对sprots的判断是否能正确,并且对两个都为“n”时的正确性 |
f 182 162 N Y | 167.5cm | 当输入的是“f”时,对sex的判断是否能正确 |
f 182 162 Y Y | 170.8cm | 当输入两个都为“Y”时的正确性 |
M 182 170 Y Y | 196.8cm | 对男性的判断,看是否与结果相似 |
1.1.4 PTA提交列表及说明
1、答案错误:当提交列表全部出来时,全部报错,便放入visual studio中进行调试,将会出现几个问题,但是调试好后,发现在后面的两个if语句中的表达式无论输入什么都无法计算里面的表达式,自己一个人真的试了很久,最后还是在同学的帮助下,解决了问题,问题的原因出在在scanf中,我并未在后两个%c中出现空格,但是在用户输入时,会输入空格,但是此时的空格被char识别,因此在此处,被识别的便是空格。基于以上原因,于是在应当自己输入空格的地方输入空格,答案才会正确。
2、编程错误:改问题不是来自pta是有关visual studio的使用中出现的问题,如上图,即使会有弹窗对其做出反应,但是在输入数值后,会对其报错,且没有数值输出,该问题是上网搜索才知道,一个新名词“缓冲值”,但是还是不太理解,就个人理解而言,即在开始时会对其定义一个缓冲值,在输入时还需对其缓冲值进行定义,如果输入的缓冲值大于了定义中的缓冲值,将会出现输入的字符丢失的情况,该问题还需继续深入!!!!
1.2判断体质完整版
1.2.1 数据处理
数据表达:使用了BMI,kilogram,height三个变量;其中kilogram,height是由scanf定义变量值,BMI是由计算式赋值计算得出;kilogram,height都为双精度浮点型。
数据处理:数据用到的表达式为BMI的计算标准以及指数函数;流程结构为分支结构。
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
50 1.75 | 偏瘦 | 尝试一下自己的BMI |
60 1.60 | 正常 | 比自己重,比自己矮一点会是什么样子 |
70 1.82 | 正常 | 较高,较重 |
62 1.75 | 正常 | 试一下自己需要多少体重才能达到标准 |
1.2.4 PTA提交列表及说明
1、答案错误:没有看清题目,一开始以为是体重除以身高,然后再平方。发现自己输入的数据的结果总是错误的,然后发现是计算式的错误,然后就一直在尝试他给我的应该是什么计算式。
2.代码互评(5分)
2.1 同学代码截图
2.2 自己代码截图
2.3 区别
- 同学1的代码看上去就比较长了,感觉特别繁琐的样子跟我的这个代码一样的长,但是其实对其进行不同的流程的话,会简化自己的流程。
- 会不会有更简单的语句对那些判断相同的整合在一起呢,我一开始想到的便是自定义函数,但是更加简单的暂时还为想到。便开始编写自定义函数,并去翻阅书籍查找那种跟简单的方法,同学2的就特别简单,该思路也还挺清晰的,感觉还是要多学习,多学的东西可以用来简化自己的程序的结构,以提升他的运行速度。
- 从同学1的代码中,本人建议还是养成良好的输入习惯,符号与字符之间输入空格增加美观,虽然我也是上一次慢慢改的,希望同学一也可以慢慢养成。
3.学习总结(15分)
3.1 学习进度条(5分)
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
6 10.8~10.11 | 2h | 51 | 打印“ hello world” | 无 |
7 10.12~10.18 | 8h | 70 | 各个符号代表的是什么的基础知识 | 还有许多符号分辨不清 |
8 10.19~10.25 | 10h | 93 | 数学函数的调用 | 对于大佬前面的哪些头文件的调用类型看不懂 |
9 10.26~11.1 | 10h | 154 | if-else语句 | 无 |
10 11.2~11.6 | 10h | 348 | for语句 | 较为复杂的循环还搞不清循环几次,循环内容 |
11 11.2~11.13 | 8h | 360 | 用户自定义函数的使用,理解与明白函数的定义与调用的区别 | 自定义函数中如果变量与主函数的变量相同,为什么计算机会分清这两个变量是谁?想不清楚为什么会自己跳动到相应的地点再进行运算,是有什么相应的规则让他自己跳动吗? |
12 11.14~11.20 | 15h | 470 | if的嵌套语句,关于char在使用中的事项 | 关于《C Primer Plus》中有些关于3.4.8的有些概念性的问题较为模糊 |
3.2 累积代码行和博客字数(5分)
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
3.3.2 学习体会
- 这一周学习的学习内容主要是if的嵌套语句,其实已经有所了解了,所以会比较容易理解了,所以还是要预习的,预习的功效还是挺明显的。
- 如果说发现问题,就一定要搞清楚这个问题是什么原因,不要跳过去,那样将会错过自己学习的机会的!!!!
- 如果说现在我能察觉到学的东西多有什么好处的话,我第一下肯定就是,简化流程,缩小运算所需要的时间,甚至节省空间,这正是编程的人员考虑的问题。