C语言I博客作业05
1.作业头
这个作业属于哪个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-4/homework/11533 |
我在这个课程的目标是 | 熟练掌握if-else,字符型数据类型和逻辑运算符的用法 |
这个作业在那个具体方面帮助我实现目标 | 精选的PTA题目和博客中代码之间的对比 |
参考文献 | 《C语言程序与设计》,百度 |
学号 | 20209057 |
1.PTA实验作业(20分/题)
1.1 C程序设计 实验2-2-1
用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!”。
输入格式:
输入一个百分制成绩(整数)。
输出格式:
输出对应等级。输入成绩不合理时,输出提示信息“Input error!”。
输入样例:
85
输出样例:
B
输入样例:
120
输出样例:
Input error!
1.1.1数据处理
数据表达:使用了A,B,C,D,E和score,grade等变量。
数据处理:用到了分支结构if-else,表达式用了if(score<=60){printf("E\n");}等类似的结构
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
-5 | Input error! | 检验score<0时是否正确 |
30 | E | 检验0<=score<60时是否正确 |
65 | D | 检验60<=score<70时是否正确 |
75 | C | 检验70<=score<80时是否正确 |
85 | B | 检验80<=score<90时是否正确 |
100 | A | 检验90<=score<=100时是否正确 |
105 | Input error! | 检验score>100时是否正确 |
1.1.4 PTA提交列表及说明 | ||
遇到的问题:题目给出的输出样式是B,没看清题导致结果总是不吻合; | ||
解决方法:去掉printf()中的grade;这一题挺意外的,没有很多错误就做出来了,挺开心的。 |
1.2C程序设计 实验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表示不好)等条件,利用给定公式和身高预测方法对身高进行预测。
输入格式:
在一行中给出性别、父亲身高、母亲身高、是否喜爱体育锻炼、是否有良好饮食习惯,数据间以空格分隔。
输出格式:
输出预测的身高,保留一位小数。
输入样例:
F 182 162 N Y
输出样例:
在这里给出相应的输出。例如:
167.5cm
数据表达:使用了faHeight,moHeight,height,height1,height2等变量和sex,sports,diet等字符;
数据处理:用到了分支结构if-else,用了height = (faHeight + moHeight) * 0.54;height = (faHeight * 0.923 + moHeight) / 2.0;height1 = height * 0.02;height2 = height * 0.015;height + height1 + height2等表达式。
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
F 182 162 N Y | 167.5cm | 题目给出数据 |
f 182 162 n y | 167.5cm | 检验小写是否正确 |
M 182 162 N Y | 188.5cm | 检验身高是否会根据性别的改变而改变 |
F 182 162 N N | 165.0cm | 检验身高是否会根据饮食习惯的改变而改变 |
F 182 162 Y Y | 170.8cm | 检验身高是否会根据体育运动的改变而改变 |
1.2.4 PTA提交列表及说明 | ||
遇到的问题:一开始理不清思路,也没有把字符和变量分开定义; | ||
解决方法:上网查询和室友的帮忙;最后得出正确结果时好开心:)。 |
2.代码互评(5分)
(1)同学代码
我的代码
两者之间的差异:1.相对TA的,我的更简约;
2.else表示与if条件相反,我的代码没有重复表达同一条件,而TA的有。
(2)同学代码
我的代码
两者之间的差异:TA用的表达式是i=i+1,而我的是count+=1。
3.学习总结(15分)
3.1 学习进度条(5分)
周/日期 | 这周所花时间 | 所学内容 | 代码行数 | 问题 |
---|---|---|---|---|
第五周 | 37h | if-else的用法 | 428 | 还行,只是速度太慢,主要是思路理不清 |
3.2 累积代码行和博客字数(5分)
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
3.3.2 学习体会
1.这周给我的最深的体会就是没有以前那么赶了,时间充足,作业质量比以前高了好多;
2.这次的分支结构类型的题目主要是思路的问题,每次理不清思路头疼的时候,室友随便讲一下思路我很快就明白了,所以说,有清晰的思路是很重要的;
3.每周的博客园练习,感觉自己打字速度变快了,也算是一种进步吧,至少在效率上提高了;
4.不要不懂就问,要先自己思考一段时间,头脑中有了大部分的思路,再去问同学的时候效果要好很多。