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

每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成人后身高的因素有遗传、饮食习惯与坚持体育锻炼等。小孩成人后身高与其父母身高和自身性别密切相关。设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()语句解释错误或者这道题有问题,还望各位不吝赐教。

原文:http://zhangzhanzg.blog.51cto.com/9168075/1532582

三个人比身高c语言,C语言的那些题(三) —— 编程计算身高问题相关推荐

  1. c语言作业 身高预测,C语言的那些题(三) —— 编程计算身高问题

    今天,再和大家分享一道关于编程计算身高的问题. 每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成人后身高的因素有遗传.饮食习惯与坚持体育锻炼等.小孩成人后身高与 ...

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

    今天,再和大家分享一道关于编程计算身高的问题. 每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成人后身高的因素有遗传.饮食习惯与坚持体育锻炼等.小孩成人后身高与 ...

  3. C语言----- 4/π=1-1/3+1/5-1/7+...,编程计算π的近似值,直到最后一项的值小于10-4次方为止 //输出π的值,并统计累加的项数

    代码如下: //利用 4/π=1-1/3+1/5-1/7+...,编程计算π的近似值,直到最后一项的值小于10-4次方为止 //输出π的值,并统计累加的项数 #include<stdio.h&g ...

  4. c语言制作二元一次方程组的根,编程计算二元一次方程的根

    满意答案 #include #include void main () { double a, b, c, x1, x2; printf("Please input three number ...

  5. C语言编程题: 编程计算1*2*3+3*4*5+...+99*100*101的值

    题目:计算1*2*3+3*4*5+...+99*100*101的值 描述:设置一个sum值,和一个i值,表示总和以及累加值,通过建立for循环和设置加一减一完成值的变化. 输入:不需要输入,直接在主函 ...

  6. 编写程序体重身高输入和输出C语言,(C语言程序设计实验.doc

    (C语言程序设计实验 创新源于实践 <高级语言程序设计> 课程实验教学手册 高级语言程序设计课程组 实验手册使用及要求 实验操作是教学过程中理论联系实际的重要环节,而实验报告的撰写又是知识 ...

  7. 编程输入身高h体重w用c语言,C语言必考100题

    本文档中包含C语言中绝大部分内容,对于初学C语言的人来说,不得不说是一份特好的资料. 1. 按下述格式,从键盘输入一个整数加法表达式:操作数1+操作数2,然后计算 并输出表达式的计算结果,形式如下:操 ...

  8. R语言入门第四集 实验三:数据可视化

    R语言入门第四集 实验三:数据可视化 一.资源 [R语言]R语言数据可视化--东北大学大数据班R实训第三次作业 在r中rowsums_R语言初级教程(15): 矩阵(下篇) R语言环境变量的设置 环境 ...

  9. C语言交换两个数字的三种做法

    C语言交换两个数字的三种做法 1.借助中间变量法: void swap(int *a , int *b) {int temp;temp = *a;*a = *b;*b = temp; } 2.使用加减 ...

  10. 经典C语言程序100例之九三

    经典C语言程序100例之九三 如题 话不多说了,直接上代码 如题 [程序93] 题目:时间函数 话不多说了,直接上代码 程序源代码: /calculate time/ #include "t ...

最新文章

  1. python pandas 把数据保存成csv文件,以及读取csv文件获取指定行、指定列数据
  2. StringBuffer 和 StringBuilder 的 3 个区别!
  3. pearsonr() python_Python 来算算一线城市的二手房价格指数相关性
  4. Haroopad安装与配置: Linux系统下最好用的Markdown编辑器
  5. pom.xml中pom全称_摆脱pom XML…几乎
  6. Smart ORM v0.4.1开发计划
  7. 指针的高阶用法——指向指针的指针
  8. mysql 查询 int类型日期转换成datetime类型
  9. python语言程序设计实践教程陈东_《Python语言程序设计实践教程》陈东著【摘要 书评 在线阅读】-苏宁易购图书...
  10. plex插件显示无服务器,Plex插件
  11. 流程图与算法_流程图与算法之间的区别
  12. 肇东一中2021高考成绩查询,肇东一中高考录取喜报
  13. 2021-4-25科学计算器开高次根号
  14. 论文阅读三:基于改进人工蜂群算法的SDN负载均衡策略研究
  15. 不同类型怎么选择服务器
  16. JavaWeb搭建简易个人博客
  17. 【南風-视觉】Ubuntu命令行安装QT
  18. Android api23中删除HttpClient的相关类的解决方法
  19. 最新版AndroidStudio-2021.2.1无法安装lombok插件问题
  20. 网络攻防技术——OSI安全体系

热门文章

  1. 马云:创业至今从不应酬,下辈子想做女人
  2. 拥有开源与创新基因 Pivotal要成为云计算的Linux 改变软件的开发方式
  3. 程序猿Skr ----- Flutter之歌
  4. 国产手机支持的国内代工企业大幅提升业绩,海外代工企业深受打击
  5. 【深度学习服务器环境配置】显卡驱动、CUDA11、CUDNN及torch、tensorflow安装
  6. 如何在工作中学习和成长?
  7. uniapp如何实现上拉加载(uniapp懒加载)?其实简简单单
  8. 实践项目之俄罗斯轮盘赌小游戏
  9. 开发者看亚马逊云科技1024【文末有福利~】
  10. Linux:批量修改分隔符(awk、BEGIN、FS、OFS、print、tr命令)