C语言I博客作业05
1.作业头
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/CST2020-1 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-1/homework/11530 |
这个作业的目标 | 熟悉多分支结构、字符型数据类型和逻辑运算符 |
学号 | <20208956> |
本周作业头
这个作业属于哪个课程 | C语言程序设计II |
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-1/homework/11530 |
我在这个课程的目标是 | 熟悉多分支结构、字符型数据类型和逻辑运算符 |
这个作业在那个具体方面帮助我实现目标 | 能够清楚的描述好自己写的代码,学会阅读别人的代码,总结学过的内容 |
参考文献 | C语言程序设计(3)、C primer plus |
1.PTA实验作业(20分/题)
请再此处列出自己的排名图片
从PTA题目集中选出2个你最满意的题目完成以下内容,选择题目难度越大,分值越高,每题20分(每项5分),内容要求如下:
1.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数据处理
数据表达:定义整型变量feHeight、moHeight。A为所求身高,用字符型变量sex、sports、diet。
数据处理:
定义变量feHeight、moHeight,A,sex,sports,diet
输入sex,faHeight,moHeight,sports,diet;
首先判断sex:if(sex=='F'||sex=='f')是否正确,若正确则A=(faHeight*0.923+ moHeight)/2;若不正确则判断if(sex=='M'||sex=='m')若正确则A=( faHeight+moHeight)*0.54
在判断完sex后接着判断sports:if(sports=='Y'||sports=='y')若正确则进行A=A+A*2/100若不正确则判断if(sports=='N'||sports=='n')若满足则A=A*1
接着以同样的方法判断diet并得到不同情况下的身高A。
1.1.2实验代码截图
1.1.3 造测试数据
输入样例 | 输出样例 | 说明 |
---|---|---|
F 182 162 N Y | 167.5cm | 女性、不喜欢体育锻炼、有良好饮食习惯 |
F 182 162 Y Y | 170.8cm | 女性、喜欢体育锻炼、有良好饮食习惯 |
F 182 162 N N | 165.0cm | 女性、不喜欢体育锻炼、没有良好饮食习惯 |
F 182 162 Y N | 168.3cm | 女性、喜欢体育锻炼、没有良好饮食习惯 |
M 182 162 N Y | 188.5cm | 男性、不喜欢体育锻炼、有良好饮食习惯 |
M 182 162 Y Y | 192.3cm | 男性、喜欢体育锻炼、有良好饮食习惯 |
M 182 162 N N | 185.8cm | 男性、不喜欢体育锻炼、没有良好饮食习惯 |
M 182 162 Y N | 189.5cm | 男性、喜欢体育锻炼、没有良好饮食习惯 |
1.1.4 PTA提交列表及说明
根据PTA提交列表,简要描述调试程序碰到的问题及解决办法。
提交列表说明:
1.答案错误:在定义变量时将A定义为了整型。后来经过调试发现了这个问题。
2.答案错误:if语句的使用,在一开始我是使用if语句嵌套。通过之前做过的一道例题的解法,想到了将三个变量依次来进行判断。
3.答案错误:在输出时没有按照题目的输出样例来,我忘记加上单位了。
1.2 题目2 有多少位是7?
从键盘读入一个4位数的整数,求该数中有多少位是7
1.2.1 数据处理
数据表达:定义了a,A,sum=0三个整型变量。
数据处理:(使用if语句)
输入一个四位整数,a,进行计算,从右到左将a的每位数取出,将其与7作比较if(A==7),若相等则sum=sum+1进行计数。
1.2.2 实验代码截图
1.2.3 造测试数据
输入样例 | 输出示例 | 说明 |
---|---|---|
4757 | 2 | 一个四位数中7的个数为2 |
4000 | 0 | 一个四位数中7的个数为0 |
77777 | 3 | 超过了四位数 |
7777 | 4 | 一个四位数中7的个数为4 |
1.2.4 PTA提交列表及说明
1.部分正确:当是是使用for循环与if的嵌套结构,但是一直是部分错误,我没有想到解决办法,所以便换了一种思路。
2.部分正确:换成switch进行解题,但并未做对。之后便继续使用if-else。
3.段错误:并不理解这种错误的原因是什么,于是又换了另一种方法,将输入数据的每一位分离出来进行比较。
4.编译错误:在切换输入法时输入了中文分号。
2.代码互评(5分)
同学代码截图
1
2
自己代码截图
1.我使用了switch语句,使代码简单了很多。
2.第一份代码和第二份思路相同,但是if-else的使用不一样。我认为第一个代码太繁琐,第二个比第一个更好一些。
3.if-else与switch的嵌套使用使代码简单很多。
3.学习总结(15分)
3.1 学习进度条(5分)
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第八周 | 18 | 220 | printf,scanf的使用,以及int类型 | |
第九周 | 22 | 231 | if语句分支结构、调用数学函数 | |
第十周: | 25 | 255 | for、while、do...while语句、字符型数据的使用 | switch语句多分支结构、break语句和continue语句 |
第十一周 | 28 | 600左右 | switch语句,逻辑运算符,数组,自定义函数 | 多个循环结构的嵌套使用容易出错 |
第十二周 | 27 | 680左右 | 无新的知识点 | 排序问题 |
3.2 累积代码行和博客字数(5分)
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
3.3.2 学习体会
基础很重要,每过一段时间都要回过头来复习学过的知识。多阅读一些好的代码,遇到一些非常新颖或者对解决一些问题有帮助的部分,如果不能理解的话可以背下来,多用几次就会有一定的理解。不能一味的往前学,要多复习,打牢基础!