C语言I博客作业05

C语言程序设计 2020计算机3班
作业要求 作业要求
课程目标 熟悉多分支结构、字符型数据类型和逻辑运算符
作业帮助实现目标的具体方面 多次使用不熟练的内容,强化记忆从而达到目标
参考文献 C语言程序设计
学号 20209003

1.PTA实验作业

从PTA题目集中选出2个你最满意的题目完成.

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 实验代码截图


  • 1.1.2 数据处理

数据表达:
  变量及其类型:
    整型变量:faHeight,moHeight
    浮点型变量:Height。
    字符型变量:sex,sports,diet
  变量由来:通过题目已知定义。
数据处理:
  表达式:sex=='F'||sex=='f',Height=(faHeight*0.923+moHeight)/2,sex=='M'||sex=='m',Height=(faHeight+moHeight)*0.54,sports=='Y'||sports=='y',Height=Height*1.02,sports=='N'||sports=='n',Height=Height,Height=Height*1.015。
  流程结构:分支结构。 
  • 1.1.3 造测试数据

输入数据 :性别\父亲身高\母亲身高\是否喜爱体育锻炼\是否有良好饮食习惯 输出数据 :Height (cm) 说明
F \ 182 \ 162 \ N \Y 167.5 女性(大写),不喜体育锻炼 ,有良好饮食习惯
f \ 182 \ 162 \ Y \Y 170.8 女性(小写),喜体育锻炼 ,有良好饮食习惯
M \ 182 \ 162 \ N \Y 188.5 男性(大写),不喜体育锻炼 ,有良好饮食习惯
  • 1.1.4 PTA提交列表及说明

1.编译错误:忘记对Height进行赋值。
2.部分正确:没有注意小写m,f的可能性。

1.2 有多少位是7?

从键盘读入一个4位数的整数,求该数中有多少位是7
输入格式:
一个4位数的整数
输出格式:
该整数中7的个数

  • 1.2.1 实验代码截图


  • 1.2.2 数据处理

数据表达:
  变量及其类型:
    整型变量:n,i,a,b,c,d。
  变量由来:通过题目已知定义。
数据处理:
  表达式:a=n/1000,b=(n/100)%10,c=(n%100)/10,d=n%10,a==7,i++,i=i,b==7,c==7,d==7。
  流程结构:分支结构。 
  • 1.2.3 造测试数据

输入数据 输出数据 说明
1117 1 一个7且在个位
2577 2 两个7且在个位和十位
3747 2 两个7且在个位和百位
7727 3 三个7且在个位百位千位
  • 1.2.4 PTA提交列表及说明

1.编译错误:在使用自定义变量d之前忘记定义d了。

2.代码互评

  • 同学代码截图

    • 身高预测
      • 同学一

      • 同学二

  • 自己代码截图

    • 身高预测

  • 不同之处

    • 1.对于我而言,同学一的代码很简洁明了,可读性很高。
    • 2.同学二的代码看起来很复杂,耗时长,但其实思维难度很小。

3.学习总结

3.1学习进度条

周\日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
7\11.15-11.21 约7小时 约200行 学习多分支结构、字符型数据类型和逻辑运算符
6\11.8-11.14 约6小时 约95行 生成乘方表与阶乘表 不理解函数的定义和调用如果将主函数放在前面,第一次出现的double fact(int n)后要加分号
5\11.1-11.7 约8小时 约140行 for语句 输出%d与%6.1lf之间不能有空格的原因
4\10.18-10.24 约6小时 约105行 if-else语句 不能理解求个位数用n%10,十位数n/10%10等

3.2累积代码行和累积博客字数

3.3学习内容总结和感悟

3.3.1学习内容总结

3.3.2学习体会

体会:

  • 这周用新学的知识写PTA作业,写是写出来了,但是自己并不满意,因为自己的答案很死板,有的代码甚至比别人多了足足60行。体会到自己对知识需要更灵活的运用,而不是生搬硬套。
  • 感觉自己容易钻牛角尖,无论来多少相似的题都一样,最终都会走到同一个死胡同里。例如:对分支结构的运用中,会陷入“是”之后存在一个分支,“否”之后也存在一个分支,无法在之前的基础上计数的死胡同,以致无法继续写下去。实际上遇到这个情况并不需要使用多分支,只需要直接往下另起一个分支即可。
posted @ 2020-11-19 23:03  藐致  阅读(176)  评论(5编辑  收藏  举报