学C的朋友们,这个怎么解决: 编写实现身高预测的程序,具体描述如下

男性成人身高=(父亲身高+母亲身高)0.54cm
女性成人身高=(父亲身高
0.923+母亲身高)/2cm
喜爱体育锻炼,身高增加2%,有良好饮食习惯,增加1.5%

测试输入:
性别:M 父亲身高:175 母亲身高:156 是否喜欢体育锻炼:Y 是否有良好的体育习惯: Y

我用if嵌套写的,但是就是不对。。不知道咋回事


#include <stdio.h>
#include <string.h>

double height(double faHeight,double moHeight,char sex)
{
    if(sex=='M'||sex=='m')
        return (faHeight + moHeight)*0.54;
    if(sex=='F'||sex=='f')
        return (faHeight*0.923 + moHeight)/2;
    return 0;
}

double sport(double height,char sports)
{
    if(sports=='Y'||sports=='y')
        return height*1.02;
    if(sports=='N'||sports=='n')
        return height;
    return 0;
}

double diet(double height,char diets)
{
    if(diets=='Y'||diets=='y')
        return height*1.15;
    if(diets=='N'||diets=='n')
        return height;
    return 0;
}

int main()
{
    char sex,sports,diets,ch;
    double h,faHeight,moHeight;
    printf("请输入男女,M/F:");
    scanf("%c",&sex);
    printf("请输入父亲身高: ");
    scanf("%lf",&faHeight);
    printf("请输入母亲身高: ");
    scanf("%lf",&moHeight);
    h=height(faHeight,moHeight,sex);
    while((ch = getchar()) != '\n' && ch != EOF);
    printf("喜爱体育锻炼吗?Y/N: ");
    scanf("%c",&sports);
    h=sport(h,sports);
    while((ch = getchar()) != '\n' && ch != EOF);
    printf("有良好的饮食习惯吗?Y/N: ");
    scanf("%c",&diets);
    h=diet(h,diets);
    while((ch = getchar()) != '\n' && ch != EOF);
    if(h)
        printf("我预测你身高有 %lf CM\n",h);
    else
        printf("您输入有误!!!\n");
    return 0;
}

代码呢,发一下你的代码,方便调试。