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

每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成人后身高的因素有遗传、饮食习惯与坚持体育锻炼等。小孩成人后身高与其父母身高和自身性别密切相关。设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语言作业 第二章 C语言的数据类型

    C语言作业 第二章 C语言的数据类型 2.1 引例 运行结果: Programming is fun 说明 (1)程序中第一行: /*Output:"Programming is fun.& ...

  3. 东莞理工c语言作业,东莞理工学院C语言网上作业..doc

    东莞理工学院C语言网上作业. <C语言程序设计>第2章作业 一. 单选题 (每小题5分,共100分,得分 45 分) 1.1.关于C程序的构成描述,_________是不正确的. A.一个 ...

  4. c语言作业指导1,C语言程序设计实验与习题指导

    目录 部分C语言程序设计上机实验 实验1C语言概述 实验2C语言基本数据类型 实验3C语言表达式 实验4顺序结构程序设计 实验5选择结构程序设计 实验6基本循环结构程序设计 实验7嵌套循环结构程序设计 ...

  5. c语言作业的分析,C语言作业分析.doc

    实验一 C程序的运行环境及简单程序编写(一) 一.实验目的 1. 了解VC++6.0集成环境的基本操作方法. 2. 了解在该系统上如何编辑.编译.连接和运行一个C程序. 3. 通过运行简单的C程序,初 ...

  6. java程序设计试题_《Java语言程序设计》期末考试模拟试题——填空题和编程题...

    一.根据题意,填写出空格中的内容 Java平台包括三个技术方向,其中J2ME代表____________.J2SE代表___________.J2EE代表____________.2.面向对象的四大概 ...

  7. c语言作业 统计成绩,C语言作业 输入多名学生3门课程成绩,并统计成绩的平均分和总分,并根据总分输出名次。...

    如一楼所言,没有多少人有这个时间来给你写.如果你只是为了交作业,建议你端正你的学习态度.如果你是一名学生成绩管理人员,建议稍微学一下Office,用Office进行学生成绩查询排名是很快的,拜托你能不 ...

  8. 交大c语言作业答案,西安交大c语言作业及答案详解.docx

    工程分析程序设计 机作业(七) 上机目的:练习 C语言的书写.循环和判断结构 1.编写程序实现摄氏度和华氏度的相互转换: F =C *9 / 5 +32 #in clude main () { flo ...

  9. c语言作业 字符串替换,C语言字符串替换。解决方法

    当前位置:我的异常网» C语言 » C语言字符串替换.解决方法 C语言字符串替换.解决方法 www.myexceptions.net  网友分享于:2015-04-14  浏览:0次 C语言字符串替换 ...

最新文章

  1. html实体编码遇上js代码
  2. php 百度逆地理编码,百度逆地址解析
  3. python加速循环嵌套的方法_如何加速python嵌套循环?
  4. 冲刺阶段——Day2
  5. 清华网红自行车火了!背后是登在《自然》上的黑科技
  6. c#定时备份mysql数据库_C# 定时备份数据库工具源码下载
  7. C++结构体变量的初始化和结构体char数组成员初始化
  8. 【STM32F103C8T6】 TTL转usb下载程序
  9. 模拟集成电路设计基础知识(一):MOS管结构及其I/V特性
  10. 线性代数及其应用(第三版)1.3节习题解答
  11. matlab基本,MATLAB最基础教程
  12. php基于纯真IP数据库实现IP地址信息查询
  13. xp系统计算机远程桌面连接不上,在XP系统中远程桌面连接不上的解决方式
  14. C/C++ fabs 函数 - C语言零基础入门教程
  15. 微信小程序旋转动画,图片转动view旋转等
  16. 哥德巴赫猜想(python)
  17. vscode远程连接服务器失败的问题
  18. 最窄770px最宽1024px的经典布局研究
  19. Git无法添加文件夹下文件
  20. 微信Mac版 v3.0.0正式版上线!mac电脑上也能在朋友圈点赞和互动!

热门文章

  1. Word处理控件Aspose.Words功能演示:用Java从Word文档中提取文本
  2. response.setHeader()设置下载中文文件名乱码问题
  3. truffle init error,unbox Downloading报错问题
  4. 面向过程与面向对象有什么区别
  5. IB学生必看书单Purple Hibiscus
  6. 中文文本分类——商品评论情感判别
  7. 艾玛·沃特森私密照惊现论坛 又是黑客惹的祸
  8. 在浏览中下载PPT文件无法正常打开,如下图问题;
  9. Android基础四大组件详解
  10. C语言中的 @ 符号