每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成人后身高的因素有遗传、饮食习惯与坚持体育锻炼等。小孩成人后身高与其父母身高和自身性别密切相关。
设faHeight为其父身高,moHeight为其母身高,身高预测公式为:
男性成人时身高 = (faHeight + moHeight) * 0.54(cm)
女性成人时身高 = (faHeight * 0.923 + moHeight) / 2(cm)
此外,如果喜爱体育锻炼,那么可增加身高2%,如果有良好的卫生饮食习惯,那么可增加身高1.5%。
编程从键盘输入小孩的性别(用字符型变量sex存储,输入字符F表示女性,输入字符M表示男性)、父母身高(用实型变量存储,faHeight为其父身高,moHeight为其母身高)、是否喜爱体育锻炼(用字符型变量sports存储,输入字符Y表示喜爱,输入字符N表示不喜爱)、是否有良好的饮食习惯等条件(用字符型变量diet存储,输入字符Y表示喜爱,输入字符N表示不喜爱),利用给定公式和身高预测方法对小孩的身高进行预测。
程序代码:
#include<stdio.h>
int main()
{
char sex,sports,diet;
float faHeight,moHeight,h;
printf("性别,(F表示女生,M表示男生):\n");
scanf("%c",&sex);
getchar();
printf("是否喜欢运动(Y表示喜爱,N表示不喜爱):\n");
scanf("%c",&sports);
getchar();
printf("是否有良好的饮食习惯(Y表示有,N表示没有):\n");
scanf("%c",&diet);
printf("母亲身高:\n");
scanf("%f",&moHeight);
printf("父亲身高:\n");
scanf("%f",&faHeight);
if(sex=='F')
{
if(sports=='Y'&&diet=='Y')
h=(faHeight*0.923+moHeight)/2*(1+0.035);
else if(sports=='Y'&&diet=='N')
h=(faHeight*0.923+moHeight)/2*(1+0.02);
else if(sports=='N'&&diet=='Y')
h=(faHeight*0.923+moHeight)/2*(1+0.015);
else
h=(faHeight*0.923+moHeight)/2;
}
else
{
if(sports=='Y'&&diet=='Y')
h=((faHeight+moHeight)*0.54)*(1+0.035);
else if (sports=='Y'&&diet=='N')
h=(faHeight+moHeight)*0.54*(1+0.02);
else if (sports=='N'&&diet=='Y')
h=(faHeight+moHeight)*0.54*(1+0.015);
else
h=(faHeight+moHeight)*0.54;
}
printf("孩子身高:%f",h);
return 0;
}