C语言I博客作业05
这个作业属于哪个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-2/homework/11531 |
我在这个课程的目标 | 更好地掌握本周学习的知识,对之前知识进行巩固 |
这个作业在那个具体方面帮助我实现目标 | PTA作业的完成、对之前知识的巩固、对自身问题的总结。 |
参考文献 | C语言程序设计 |
** | |
1.PTA实验作业(20分/题) ** |
排名
1.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 数据处理
数据表达:用了faHeight、moHeight、Height、sex、sports、diet等变量。
其中faHeight、moHeight、sex、sports、diet的值是由用户输入得来的,Height用于存储计算结果。
faHeight、moHeight、Height为浮点型变量,sex、sports、diet为字符型变量。
数据处理:
表达式:Height = (faHeight * 0.923 + moHeight) / 2;
Height = (faHeight + moHeight) * 0.54;
Height = Height * (1 + 0.02);
Height = Height * (1 + 0.015);
流程结构:分支结构,运用了else-if语句对输入的数据进行处理、计算。
1.1.2 实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
F 182 162 N Y | 167.5cm | 女生,父母身高分别为182cm,162cm,不喜欢体育锻炼,有良好的饮食习惯。 |
F 175 161 Y Y | 167.0cm | 女生,父母身高分别为175cm,161cm,喜欢体育锻炼,有良好的饮食习惯。 |
M 175 161 N N | 181.4cm | 男生,父母身高分别为175cm,161cm,不喜欢体育锻炼,没有良好的饮食习惯。 |
M 175 161 Y Y | 187.8cm | 男生,父母身高分别为175cm,161cm,喜欢体育锻炼,有良好的饮食习惯。 |
1.1.4 PTA提交列表及说明
提交列表:
说明:
编译错误:英文拼写错误,有些语句后少打了";"。
答案错误:未按题目的要求,少编了一部分,导致答案错误。如"if(sex == 'F')"不完整,应改为"if(sex == 'F'||sex == 'f')"。
部分正确:英文字母大小写错误。
1.2 有多少位是7?
题目内容描述:从键盘读入一个4位数的整数,求该数中有多少位是7。
1.2.1 数据处理
数据表达:用了 n,m,a,b,c,d等变量。
其中n的值是由用户输入得来的,a,b,c,d分别为n这个数的千分位,百分位,十分位和个位,m用于存储最终计算结果。
以上变量均为整型变量。
数据处理:
表达式:a=n/1000;
b=(n%1000)/100;
c=(n%100)/10;
d=(n%10)/1;
m=m+1;
流程结构:先利用表达式求出n各分位的数,再运用了if-else语句对数据进行处理、计算求出m,分支结构。
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
4757 | 2 | 百分位和个位是7,共2个 |
2038 | 0 | 各分位均不是7,0个 |
7777 | 4 | 各分位均是7,共4个 |
1.2.4 PTA提交列表及说明
提交列表:
说明:
部分正确:计算前未对m进行赋值,应加上"m=0;"。
部分正确:表达式部分错误,导致答案部分错误。修改表达式,如"b=(n%1000)/100;"。
2.代码互评(5分)
题目1:有多少位是7?
同学代码截图1
自己代码截图1
1.首先同学定义了number,count两个变量,而我定义了n,m,a,b,c,d六个变量,同学的更简便,代码看起来更明了。
2.同学用于了"count++"来进行累加计算,而我则用表达式"m=m+1"来计算。同学的代码简洁,看起来更舒服,我的稍显复杂。
题目2:判断体质完整版
同学代码截图2
自己代码截图2
1.我和同学的代码,在思路上是差不多的,但从版面来看,同学的会更简洁,更美观,我的多了一些不必要的内容,应该多学习一下同学的格式。
2.同学很好的运用了else-if语句,让整个代码更明了,易理解。
3.学习总结(15分)
3.1 学习进度条(5分)
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第一周 | 10h | 76 | 基本格式,定量定义,输入输出 | |
第二周 | 20h | 249 | 赋值,算数运算,if-else语句 | 一些格式不太理解 |
第三周 | 25h | 358 | for循环语句 | 理解但不太会运用 |
第四周 | 30h | 500 | 函数的调用,自定义函数 | 实参,形参不太理解。不太会定义函数 |
第五周 | 35h | 590 | 二分支结构及多分支结构,if-else语句及else-if语句,字符型变量的运用 | 数学函数的使用 |
3.2 累积代码行和博客字数(5分)
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
3.3.2 学习体会
①经过一周的学习,掌握了一些新的知识,学习了相对之前更复杂更难的内容,在理解、掌握知识这方面花的时间更多了,对博客园的使用,markdown的语法更加熟练。
②C语言是一门不多练习就很难掌握的课程,所以多多找题目来练习,多阅读相关书籍、优秀代码对学习这门课程有很大帮助。
③我在写代码时经常出现一些低级错误,比如英文拼写错误、少打了";",在以后的学习中要多注意。
④多对自己的学习进行总结,找出自己存在的问题,并积极改正,一步一个脚印,学好C语言。
⑤我的代码经常比较复杂,没有一些同学的那样简洁美观,这一点我需要去好好下功夫,多学习学习他们的方法。