刚学c语言碰到个难题看了一天了自己打出来结果不对 不知道哪里出问题了

身高预测 每个做父母的都关心自己孩子成人后的身高,有关生理卫生知识与数理统计分析表明,影响小孩成人后的身高的因素包括遗传、饮食习惯与体育锻炼等。小孩成人后的身高与其父母的身高和自身的性别密切相关。 设faHeight为其父身高,moHeight为其母身高,身高(单位为cm)预测公式为: 男性成人时身高=(faHeight + moHeight)×0.54 女性成人时身高=(faHeight×0.923 + moHeight)/2 此外,如果喜爱体育锻炼,那么可增加身高2%;如果有良好的卫生饮食习惯,那么可增加身高1.5%。 编程从键盘输入用户的性别(用字符型变量sex存储,输入字符F表示女性,输入字符M表示男性)、是否喜爱体育锻炼(用字符型变量sports存储,输入字符Y表示喜爱,输入字符N表示不喜爱)、是否有良好的饮食习惯等条件(用字符型变量diet存储,输入字符Y表示良好,输入字符N表示不好)、父母身高(用实型变量存储,faHeight为其父身高,moHeight为其母身高),利用给定公式和身高预测方法对身高进行预测。

输入格式:

依次输入性别,是否喜爱体育锻炼、是否有良好的饮食习惯、父亲的身高、母亲的身高。

输出格式:

预测其成年后的身高,保留1位小数。

输入样例:

M,Y,Y,175,160

输出样例:

187.3

输入样例:

F,N,N,170,165

输出样例:

161.0

输入样例:

F,Y,Y,170,165

输出样例:

166.6

#include<stdio.h>
int main()
{
    int fh,mh;
    double h;
    char sex,sports,diet;
    scanf("%c,%c,%c,%d,%d",&sex,&sports,&diet,&fh,&mh);
    if(sex=='F')
        h=(fh*0.923+mh)/2;
        {if(sports=='Y')
            h=h*1.02;
            {if(diet=='Y')
                h=h*1.015;
                printf("%.1f",h);
             if(diet=='N')
                printf("%.1f",h);}
         if(sports=='N')
            {if(diet=='Y')
                h=h*1.015;
                printf("%.1f",h);
             if(diet=='N')
                printf("%.1f",h);}}
    if(sex=='M')    
        h=(fh+mh)*0.54;
        {if(sports=='Y')
            h=h*1.02;
            {if(diet=='Y')
                h=h*1.015;
                printf("%.1f",h);
             if(diet=='N')
                printf("%.1f",h);}
         if(sports=='N')
            {if(diet=='Y')
                h=h*1.015;
                printf("%.1f",h);
             if(diet=='N')
                printf("%.1f",h);}}
    return 0;
}

如果if后只有一行,不需要大括号,如果超过一行,大括号直接放在if后面,你这样放,大括号的内容不属于if的

if A
    b;
    c;
//这么写,编译器只会认为b是属于if的,而c是另外的语句。如果if后面超过两句,请用{}
//初学建议不要偷懒,但凡有这种,全部加上{},哪怕只有一句话也要加。