每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,
影响小孩成人后身高的因素有遗传、饮食习惯与坚持体育锻炼等。小孩成人后身高与其父
母身高和自身性别密切相关。
设faHeight为其父身高,moHeight为其母身高,
身高预测公式为:
男性成人时身高 = (faHeight + moHeight) * 0.54(cm)
女性成人时身高 = (faHeight * 0.923 + moHeight) / 2(cm)
此外,如果喜爱体育锻炼,那么可增加身高2%
如果有良好的卫生饮食习惯,那么可增加身高1.5%
程序要求:父亲的身高与母亲的身高、小孩的性别、是否喜爱体育锻炼和是否有良好的卫生
饮食习惯也从键盘上输入,最终输出预测的身高。 提示:小孩性别的输入方式,可在屏幕
给出提示“请输入小孩的性别(男孩输入M,女孩输入F):”,然后通过if语句来判断从键盘
输入的字符是M还是F。是否喜爱体育锻炼也可以通过类似的方式实现。
源代码:
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
int main()
{
float faHeight, moHeight, chHeight;
char sex;
int train, eat;
printf("Please input faHeight and moHeight(cm)\n");
scanf("%f %f", &faHeight, &moHeight);
printf("Please input child's sex(M or F):\n");
scanf(" %c", &sex);
printf("Please input is child like train and eat(0 or 1):\n");
scanf("%d %d", &train, &eat);
switch (sex)
{
case 'M':
if (0 == train && 0 == eat)
{
chHeight = (faHeight + moHeight) * 0.54;
printf("chHeight = %.2f(cm)\n", chHeight);
}
else if (0 == train && 1 == eat)
{
chHeight = (faHeight + moHeight) * 0.54 * 1.015;
printf("chHeight = %.2f(cm)\n", chHeight);
}
else if (1 == train && 0 == eat)
{
chHeight = (faHeight + moHeight) * 0.54 * 1.02;
printf("chHeight = %.2f(cm)\n", chHeight);
}
else if (1 == train && 1 == eat)
{
chHeight = (faHeight + moHeight) * 0.54 * 1.035;
printf("chHeight = %.2f(cm)\n", chHeight);
}
else
{
printf("ERROR and EXIT!\n");
exit(0);
}
break;
case 'F':
if (0 == train && 0 == eat)
{
chHeight = (faHeight * 0.923 + moHeight) / 2;
printf("chHeight = %.2f(cm)\n", chHeight);
}
else if (0 == train && 1 == eat)
{
chHeight = (faHeight * 0.923 + moHeight) / 2 * 1.015;
printf("chHeight = %.2f(cm)\n", chHeight);
}
else if (1 == train && 0 == eat)
{
chHeight = (faHeight * 0.923 + moHeight) / 2 * 1.02;
printf("chHeight = %.2f(cm)\n", chHeight);
}
else if (1 == train && 1 == eat)
{
chHeight = (faHeight * 0.923 + moHeight) / 2 * 1.035;
printf("chHeight = %.2f(cm)\n", chHeight);
}
else
{
printf("ERROR and EXIT!\n");
exit(0);
}
break;
default:
printf("ERROR and EXIT!\n");
exit(0);
}
return 0;
}
运行结果截图: