今天,再和大家分享一道关于编程计算身高的问题.

每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成人后身高的因素有遗传、饮食习惯与坚持体育锻炼等。小孩成人后身高与其父母身高和自身性别密切相关。设faHeight为其父身高,moHeight为其母身高,身高预测公式为:男性成人时身高 = (faHeight + moHeight) * 0.54(cm),女性成人时身高 = (faHeight * 0.923 + moHeight) / 2(cm),此外,如果喜爱体育锻炼,那么可增加身高2%,如果有良好的卫生饮食习惯,那么可增加身高1.5%。程序要求:父亲的身高与母亲的身高、小孩的性别、是否喜爱体育锻炼和是否有良好的卫生饮食习惯也从键盘上输入,最终输出预测的身高。

提示:小孩性别的输入方式,可在屏幕给出提示“请输入小孩的性别(男孩输入M,女孩输入F):”。是否喜爱体育锻炼也可以通过类似的方式实现。

首先,分析一下这道题目,它要求各项影响因素指标都要从控制台输入,并且输入时有提示,所以要用到多个输入输出函数.其次,影响身高的因素也很多,所以要通过多个if - else语句来判断.看一下实现代码:

float faHeight = 0, moHeight = 0, adultHeight = 0;

char childSex = 0, sport = 0, health = 0;

printf("请输入父亲的身高(cm):");

scanf("%f", &faHeight);

printf("请输入母亲的身高(cm):");

scanf("%f", &moHeight);

printf("请输入小孩的性别(男孩输入M,女孩输入F):");

getchar();

scanf("%c", &childSex);

printf("小孩是否喜爱体育锻炼(喜欢输入Y,不喜欢输入N):");

getchar();

scanf("%c", &sport);

printf("小孩是否有良好的饮食习惯(有输入Y,没有输入N):");

getchar();

scanf("%c", &health);

if (childSex == 'M') {

if (sport == 'Y' && health == 'Y') {

adultHeight = ((faHeight + moHeight) * 0.54) * (1 + 0.035);

} else if (sport == 'Y' && health == 'N') {

adultHeight = ((faHeight + moHeight) * 0.54) * (1 + 0.02);

} else if (sport == 'N' && health == 'Y') {

adultHeight = ((faHeight + moHeight) * 0.54) * (1+ 0.015);

} else if (sport == 'N' && health == 'N') {

adultHeight = (faHeight + moHeight) * 0.54;

}

printf("预测的身高是:%f", adultHeight);

} else if (childSex == 'F') {

if (sport == 'Y' && health == 'Y') {

adultHeight = ((faHeight * 0.923 + moHeight) / 2) * (1 + 0.035);

} else if (sport == 'Y' && health == 'N') {

adultHeight = ((faHeight * 0.923 + moHeight) / 2) * (1 + 0.02);

} else if (sport == 'N' && health == 'Y') {

adultHeight = ((faHeight * 0.923 + moHeight) / 2) * (1 + 0.015);

} else if (sport == 'N' && health == 'N') {

adultHeight = (faHeight * 0.923 + moHeight) / 2;

}

printf("预测的身高是:%.2f", adultHeight);

}

做这道题时,刚开始遇到了一个问题,最初在输入输出时没有用getchar()语句,在输入身高之后,导致输入字符不成功,后来了解到是输入时按回车键时相当于产生了\n字符,占用了缓冲区,这时就需要用到getchar()语句把\n取出来,保证下面输入顺利执行。关于getchar()语句的详细用法,我了解不多,就不在这里多说,如果这题关于getchar()语句解释错误或者这道题有问题,还望各位不吝赐教。

c语言程序设计第三版 孩子身高,C语言的那些题(三) ―― 编程计算身高问题相关推荐

  1. c语言程序设计教程第二版李春葆,C语言程序设计教程.第2版

    摘要: 本书将C语言程序设计分成入门基础,程序设计的基本结构,模块化程序设计的结构3个循序渐进的部分.主要介绍C语言程序的基本结构,数据的表达方式,基本表达式语句等内容.书中以实例导入,以程序为核心, ...

  2. python语言程序设计微课版_《Python语言程序设计(微课版)》【摘要 书评 试读】- 京东图书...

    权利声明: 京东上的所有商品信息.客户评价.商品咨询.网友讨论等内容,是京东重要的经营资源,未经许可,禁止非法转载使用. 注:本站商品信息均来自于合作方,其真实性.准确性和合法性由信息拥有者(合作方) ...

  3. 第三章 函数 C++语言程序设计第五版 - 郑莉

    本专栏为C++学习笔记,参考书籍为:C++语言程序设计 第五版 -清华大学出版社- 郑莉 B站视频:https://space.bilibili.com/702528832/video PPT与代码已 ...

  4. C++语言程序设计第五版 - 郑莉(第三章课后习题)

    第3章  函数 3-8 编写函数把华氏温度转换为摄氏温度,公式为:C = (F - 32) * 5/9 在主程序中提示用户输入一个华氏温度,转化后输出相应的摄氏温度. #include<iost ...

  5. C++语言程序设计第五版 - 郑莉-绪论(一)

    本专栏为C++学习笔记,参考书籍为:C++语言程序设计 第五版 -清华大学出版社- 郑莉 B站视频:https://space.bilibili.com/702528832/video PPT与代码已 ...

  6. c语言程序设计第五版课后习题答案谭浩强第八章课后题

    c语言程序设计第五版课后习题答案谭浩强第八章课后题 输入三个字符串,按由大到小的顺序输出 要求用指针实现 输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个属兑换.写三个函数:1.输入 ...

  7. C++语言程序设计(第5版 郑莉、董渊)学习笔记(自用~)

    C++语言程序设计 第5版 1.前言 2.内容 第一章 绪论 1.1语言发展 1.1.1 概述 机器语言-->汇编语言-->高级语言(包括C++) 1.1.2 面向对象 结构化程序设计(面 ...

  8. c 语言程序设计第四版郑莉答案,C 语言程序设计郑莉(第4版)

    <C++语言程序设计(在线教学版?第4版)/清华大学计算机系列教材,普通高等教育"十一五"规划教材>针对程序设计的初学者,以面向对象的程序设计思想为主线,以通俗易懂的方 ...

  9. 将123倒转 c语言,中国航信杯C语言程序设计答案解析版.doc

    中国航信杯C语言程序设计答案解析版 2 - 1 - 25 - (比赛科目:C语言程序设计) 软件要求与硬件要求 软件要求 WinTC(版本:V1.9.1) Dev C++(版本:4.9) Visual ...

最新文章

  1. 【DevOps进行时】自动化测试之单元测试
  2. C# 7.0中的解构功能---Deconstruct
  3. 2016年光伏电站交易和融资的十大猜想
  4. statsmodels学习——使用多元回归拟合数据
  5. intellij 专业版 TomCat9
  6. Tensorflow 2.x代码中如何控制随机性以保证结果可重复性
  7. 层次分析法(小白必看手机查看)
  8. ojdbc6.jar下载Linux,Linux下 和 Windows 下 Oracle Instant Client 的安装.
  9. 大学生性价比计算机推荐,2018大学生笔记本推荐_良心笔记本推荐【性价比之王】-太平洋电脑网...
  10. 站斧超级浏览器风控系统助力Lazada商家安全管理
  11. 缤纷彩色文字广告代码,文字广告代码美化版,给网站添加文字广告教程
  12. 我在舒舍的短租生活之旅
  13. 计算机基础(一):二进制详解
  14. 被病毒感染后隐藏文件夹的隐藏属性变灰(不可修改)的解决办法!
  15. 【翻译论文】Understanding Reuse, Performance, and Hardware Cost of DNN......
  16. 输入两个质数的乘积,求乘数中较大的那个质数
  17. MATLAB实现模拟推导π的值
  18. Spring5 新特性之 webflux
  19. 2023年广东数据分析师CPDA认证招生简章(理论+实战)
  20. 锁定计算机后怎样解锁,如何在锁定键盘时解锁计算机键盘. 详细的方法介绍

热门文章

  1. 常见的ftp工具有哪些,分享8款常见的ftp工具
  2. 360视频:赤道圆柱投影ECP
  3. 自定义echarts地图展示行政区域
  4. iacr是什么会议_什么才算计算机的顶级会议?
  5. 芝加哥大学计算机博士年薪,专排TOP6芝加哥大学统计学博士录取
  6. 编程的首要原则是什么?
  7. 聊聊后台5种常见的几种布局
  8. 实时性之硬实时与软实时
  9. 知识库 编号:010
  10. 解决HbuilderX拒绝访问页面的问题