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 学习体会

基础很重要,每过一段时间都要回过头来复习学过的知识。多阅读一些好的代码,遇到一些非常新颖或者对解决一些问题有帮助的部分,如果不能理解的话可以背下来,多用几次就会有一定的理解。不能一味的往前学,要多复习,打牢基础!

posted @ 2020-11-20 08:34  洪胤  阅读(171)  评论(7编辑  收藏  举报