8、身高预测
每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成人后身高的因素有遗传、饮食习惯与坚持
体育锻炼等。小孩成人后的身高与其父母的身高和自身的性别密切相关。
设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>
void main()
{char sex;char sports;char diet;float faHeight;float moHeight;
scanf("%c,%c,%c,%f,%f",&sex,&sports,&diet,&faHeight,&moHeight);
if(sex='M')
{
if(sports=='Y'&&diet=='Y')
{printf("height=%f",(1+0.035)*(faHeight+moHeight)*0.54);};
if(sports=='Y'&&diet=='N')
{printf("height=%f",(1+0.02)*(faHeight+moHeight)*0.54);};
if(sports=='N'&&diet=='Y')
{printf("height=%f",(1+0.015)*(faHeight+moHeight)*0.54);};
if(sports=='N'&&diet=='N')
{printf("height=%f",(faHeight+moHeight)*0.54);};
};
if(sex='F')
{
if(sports=='Y'&&diet=='Y')
{printf("height=%f", (faHeight*0.923+moHeight)/2*(1+0.035));};
if(sports=='Y'&&diet=='N')
{printf("height=%f",(faHeight*0.923+moHeight)/2*(1+0.02));};
if(sports=='N'&&diet=='Y')
{printf("height=%f",(faHeight*0.923+moHeight)/2*(1+0.015));};
if(sports=='N'&&diet=='N')
{printf("height=%f",(faHeight*0.923+moHeight)/2);};
};
}
#include<stdio.h>
void main()
{
char sex,sports,diet;
float faHeight,moHeight,chHeight = 0;
scanf("%c,%c,%c,%f,%f",&sex,&sports,&diet,&faHeight,&moHeight);
if(sex == 'M')
chHeight = (faHeight + moHeight)*0.54;
else if(sex == 'F')
chHeight = (faHeight*0.923+moHeight)/2;
if(sports == 'Y')
chHeight = chHeight * 1.02;
if(diet == 'Y')
chHeight = chHeight * 1.015;
printf("height = %f",chHeight);
}
手打不容易,你写的程序稍后给你分析,你先用我这个应急吧~~
输进的时候,你怎么保证N和Y是大写的?你输进Y可能输进是y,输进N可能是n ,你应该把小写 的加进到你判断的条件里面,或者把小写的改变为大写的,在进行判断;同时,你的这个程序,阅读性不怎么样,比如你可以在这么改写:
if(sports=='Y'&&diet=='Y')
{printf("height=%f", (faHeight*0.923+moHeight)/2*(1+0.035));};
if(sports=='Y'&&diet=='N')
{printf("height=%f",(faHeight*0.923+moHeight)/2*(1+0.02));};
改写如下:
if(sport=='Y'||sport=='y')
{if(diet=='Y'||diet=='y') printf("height=%f", (faHeight*0.923+moHeight)/2*(1+0.035));
else printf("height=%f",(faHeight*0.923+moHeight)/2*(1+0.02));
}