C语言I博客作业05
这个作业属于哪个课程 | C语言程序设计II |
这个作业要求在哪里 | 作业要求 |
我在这个课程的目标是 | 熟练使用C语言 |
这个作业在那个具体方面帮助我实现目标 | 熟练使用char,学习他人代码优秀之处 |
参考文献 | C语言程序设计 |
学号 | 20209017 |
1.PTA实验作业
请再此处列出自己的排名图片
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表示不好)等条件,利用给定公式和身高预测方法对身高进行预测。
输入格式: 在一行中给出性别、父亲身高、母亲身高、是否喜爱体育锻炼、是否有良好饮食习惯,数据间以空格分隔。。
输出格式: 输出预测的身高,保留一位小数。
输入样例: F 182 162 N Y
输出样例: 在这里给出相应的输出。例如:167.5cm
1.1.1数据处理
数据表达:用了faHeight,moHeight,Height,sex,sports,diet变量,这些变量的值是定义计算赋值来的,类型是字符型与双精度浮点型。
数据处理:数据用到数学表达式与条件表达式。 流程结构用到选择结构(if-else)。
1.1.2 实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
F 182 162 N Y | 167.5cm | 女性,不爱运动,有良好饮食习惯 |
f 180 163 y y | 170.3cm | 女性,喜爱运动,有良好饮食习惯 |
m 178 150 n y | 179.8cm | 男性,不爱运动,有良好饮食习惯 |
f 178 150 y n | 160.3cm | 女性,喜爱运动,无良好饮食习惯 |
f 177 154 n n | 158.7cm | 女性,不爱运动,无良好饮食习惯 |
m 177 154 n n | 178.7cm | 男性,不爱运动,无良好饮食习惯 |
m 180 163 y y | 191.7cm | 男性,喜爱运动,有良好饮食习惯 |
m 178 150 y n | 180.7cm | 男性,喜爱运动,无良好饮食习惯 |
1.1.4 PTA提交列表及说明![](https://img2020.cnblogs.com/blog/2177117/202011/2177117-20201119183401110-1736516182.jpg)
![](https://img2020.cnblogs.com/blog/2177117/202011/2177117-20201119183408990-1590224665.jpg)
Q1:编译错误:char数据类型在比较等于不是常量时应该要加单引号。
A1:利用编译后的信息提示框,上网查找其提示框内信息的意思。发现是单引号没写。
Q2:答案错误:运行答案应该是167.5cm,我的答案一直出来的是165.0。
A2:通过调试发现程序一直跳过除第一个if-else后的内容,发现在scanf语句里有一个],删去后答案正确。
1.2 有多少位是7?
题目内容:从键盘读入一个4位数的整数,求该数中有多少位是7
输入格式:一个4位数的整数
输出格式:该整数中7的个数
输入样例:在这里给出一组输入。例如:4757
输出样例:在这里给出相应的输出。例如:2
1.2.1数据处理
数据表达:用了n,a,b,c,d,e变量,这些变量的值是定义计算赋值来的,类型是整型。
数据处理:数据用到数学表达式与条件表达式。 流程结构用到选择结构(if-else)。
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
3210 | 0 | 输入四位数的整数中无7 |
4270 | 1 | 输入四位数的整数中有一个7 |
4757 | 2 | 输入的四位数的整数中有两个7 |
7877 | 3 | 输入的四位数的整数中有三个7 |
7777 | 4 | 输入的四位数的整数中有四个7 |
1.2.4 PTA提交列表及说明
Q1:编译错误:主函数没有写全。
A1:反复检查发现(void)没有写。
Q2:答案错误:对取余的用法不够熟悉,各位数计算错误。
A2:上网搜索取余的详细用法,在纸上写下思路。
Q3:答案错误:算7的个数时,不是7的数也算成是7。
A3:将不是7的数的表达式等于原数。
2. 代码互评
2.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
2.1.1 同学代码
2.1.2 自己代码
2.1.3 不同之处
1.从篇幅来看,同学的代码要简短许多。我的代码的长度是她的两倍。
2.同学只用了if和else if,之前我以为用了if,else if后必须还要用else,通过这次对比我知道了if-else语句还可以这样用。
3.同学的if-else后面没有加{},我认为加{}可以让代码更加清晰明了,使其结构更加分明。
4.我的代码长度之所以比同学的长是因为我重复了很多语句,这些语句换种方法可以不用重复一次。而同学的代码用的方法比较好,代码并没有重复,就会更简洁。
2.2 题目:用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!
2.2.1同学代码
2.2.2 自己代码
2.2.3 不同之处
1.同学只用了if和else,而我还用了else if。
2.我在最开始判断成绩是否合理,而同学是将将成绩不合理放到最后。
3.我是将输入成绩合理与不合理作为最开始的选择条件,再在成绩合理里做选择,而同学是直接按题目的顺序一直写if与else,在每个if与else里写上输出语句,我认为这样相对来说会更加麻烦。
3. 学习总结
3.1 学习进度条
周/日期 | 这周所花时间 | 代码行 | 学到的知识点简介 | 目前比较困惑的问题 |
---|---|---|---|---|
第一周 | 0天 | 0行 | C语言知识的大纲 | 目前没有问题 |
第二周 | 3天 | 约20行 | Hello world编程Markdown语法 | 目前没有问题 |
第三周 | 5天 | 约80行 | 华氏度与摄氏度的转换、调试 | 对应该如何调试还不太懂 |
第四周 | 5天 | 约90行 | if-else语句 | PTA作业在scanf语句处有警告,该如何修改 |
第五周 | 5天 | 约125行 | for语句 | 对for语句的使用不够熟练 |
第六周 | 五天 | 104 | 如何定义函数 | 对定义函数的操作不过熟练 |
第七周 | 5天 | 184 | char数据类型的用法 | 用char类型不熟练,分不清什么时候要加'' |
3.2 累积代码行和博客字数
时间 | 博客字数 | 代码行数 |
---|---|---|
第一周 | 0 | 0 |
第二周 | 808 | 20 |
第三周 | 808 | 100 |
第四周 | 1426 | 190 |
第五周 | 2968 | 315 |
第六周 | 4144 | 409 |
第七周 | 7053 | 184 |
![]() |
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
请回顾自己的本周的学习过程,描述学习感受,也可以提出你不理解的地方、对教师教学建议等。如果你有新的想法或者新的方法,请及时记录下来。
本周学习感受:在写自己定义函数的题目越来越熟练,能通过调试去发现自己写的代码的问题所在之处。一些比较难的题目能通过自己的反复思索找到思路,并一点一点地写出来。本周有进行预习switch语句,并尝试写了PTA中需要用到switch语句的题目,但发现仍有疑惑之处,对其的具体使用不够熟悉,对其的运行原理也不够清楚。