C语言I博客作业05
作业头
| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/CST2020-4 |
|---|---|
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-4/homework/11533 |
| 这个作业的目标 | 熟悉多分支结构、字符型数据类型和逻辑运算符。 |
| 这个作业在那个具体方面帮助我实现目标 | 再写pta的时候,初步学会正确使用多分支结构 |
| 参考文献 | B站 百度《C语言程序与设计》 |
| 学号 | 20209043 |
1.PTA实验作业(20分/题)

7-1 C程序设计 实验2-2-1 (20分)
用if-else语句编程,根据输入的百分制成绩score(整数),转换成相应的五分制成绩grade后输出。
当 90≤ score≤100时, grade=A ;
当80≤ score<90时,grade=B;
当70≤ score<80时, grade=C;
当60≤ score<70时,grade=D;
当0≤ score<60时,grade=E。
如果输入成绩 score<0或 score>100,则输出“Input error!”。
1.1.1数据处理
数据表达: 用了score,grade.通过float和char定义而来的,score是单精度浮点型变量,而grade是字符型变量。
数据处理: 用了【 if (score >= 90 && score <= 100) {printf("%c\n",'A');}】及相同的语句,通过分支结构if——else判断进行逐步运算A,B,C,D,E等。
1.1.2实验代码截图

1.1.3 造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 85 | B | 题目的样例数据 |
| 120 | Input error! | 题目的样例数据 |
| 98 | A | 测试90≤ score≤100时是否正确 |
| 77 | C | 测试70≤ score<80时是否正确 |
| 65 | D | 测试60≤ score<70时是否正确 |
| 33 | F | 测试0≤ score<60时是否正确 |
| -6 | Input error! | 测试score<0时是否正确 |
1.1.4 PTA提交列表及说明

1.编译错误:不知道哪里错了,表达式正确,语句顺序也没有错误。两次提交错误之后,我翻了翻书。发现printf()语句后面的字符节变量应该添上' '。
2.编译正确:看书之后写成printf("%c\n",'A')这样,就对了。
1.2 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.2.1 数据处理
数据表达: 定义并使用了字符型变量char sex,sports,diet;还有双精度浮点型变量double faHeight,moHeight,height,height1,height2;
数据处理: 用了【if(sex'M' || sex'm') height=(faHeight+moHeight)0.54;】【if(sex'F' || sex'f')height=(faHeight0.923+moHeight)/2.0;】【if(sports'Y'||sports'y') height1=height0.02;】【if(diet'Y'||diet'y') height2=height0.015;】四个表达式;全是运用if——else分支结构语序。
1.2.2 实验代码截图

1.2.3 造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| F 182 162 N Y | 167.5cm | 题目的样例数据 |
| f 182 162 N Y | 167.5cm | 测试另一种输入数据,看输出数据是否发生改变 |
| F 182 162 Y Y | 170.8cm | 改变饮食习惯,看输出数据是否发生改变 |
| F 182 162 N N | 165.0cm | 改变运动情况 ,看输出数据是否发生改变 |
| M 182 162 N Y | 188.5cm | 改变性别 ,看输出数据是否发生改变 |
| M 175 170 N Y | 189.1cm | 改变父亲与母亲的身高,看输出数据是否发生改变 |
1.2.4 PTA提交列表及说明

1.编译错误:在scanf()中书上变量是连在一起的,没看题目要求,结果惯性思维写在一起。
2.答案错误:在输出的时候,答案为165.0cm,这个问题真的气死我了,弄了很久都没有弄出来,测试了多次都为165.0cm,总感觉有一条语句没有执行,然后我就把,没有饮食习惯和运动情况删了,哎!不管怎么弄,都没弄出来。头疼!
3.答案正确:好在高手的指点下,对if——else了解更深了,也把它作对了。
2.代码互评(5分)
同学1代码截图
同学2代码截图
自己代码截图
比较:1.与同学1的相比,他用int m[4]这是啥,现在还不懂好吧,说明这位同学提前预习了,不错,for循环,if分支结构,同学1巧用这些来写这道题,印证了一题多解,思维能力很强好吧,值得学习,成为大神!!!,再来看看自己的代码,普通,太普通了。还是要有发散思维,不能太局限了。多向大神学习!!!
2.与同学2的比较,我是直接如果满足条件就count++,不满足就不管他,简单而又不合理。而同学2就是完完整整把它写出来了,这种是好的,但是代码太长需要消耗的时间比较多,得来的报酬确实一样的。所以代码还是要简单合理比较好,在以后的代码学习中。
3.学习总结(15分)
3.1 学习进度条(5分)
| 周/日期 | 这周所花的时间 | 代码行学到的知识点 | 简介目前比较迷惑的问题 |
|---|---|---|---|
| 11/1——11/8 | 15h | pow(),sqrt()函数 | 数据控制输出 |
| 11/9——11/15 | 17h | 函数 | 函数的被动定义 |
| 11/16——11/22 | 18.5h | 分支结构 | 字节变量的使用 |
3.2 累积代码行和博客字数(5分)

3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结

3.3.2学习体会
答:(1)感觉:本周学习分支结构,真实感觉是:上完彭老师的课后觉得太简单了,可是写pta的时候发现问题不断,老师着重强调几个注意点总是忘记。好吧,这就是没学懂的表现,所以多练还是非常重要的。
(2)不理解的地方:字节变量的使用。总是不习惯这个新东西。

浙公网安备 33010602011771号