c语言选择控制结构,If else

#include <stdio.h>
int main()
{
double A,B,C,faHeight,moHeight,MHeight,FHeight;
char F,M,Y,N,sex,sports,diet;
printf("Input faHeight,moHeight,sex,sports,diet:");
scanf("%lf,%lf,%c,%c,%c",&faHeight,&moHeight,&sex,&sports,&diet);
if(sex=='M')
MHeight=(faHeight+moHeight)0.54;
else
FHeight=(faHeight
0.923+moHeight)/2;
if(sports=='Y')
{A=MHeight0.02;
A=FHeight
0.02;
}
else
{A=0;
A=0;
}
if(diet=='Y')
{B=MHeight0.015;
B=FHeight
0.015;
}
else
{B=0;
B=0;
}
if(sex=='M')
C=A+B+MHeight;
else
C=A+B+FHeight;
printf("%f",C);
return 0;
}

你的代码中A和B赋值的时候,男性数据都被女性数据覆盖了。如下图

img

代码修改如下:

#include <stdio.h>
int main()
{
    double A,B,C,faHeight,moHeight,MHeight,FHeight;
    char F,M,Y,N,sex,sports,diet;
    printf("Input faHeight,moHeight,sex,sports,diet:");
    scanf("%lf,%lf,%c,%c,%c",&faHeight,&moHeight,&sex,&sports,&diet);
    if(sex=='M')
    {
        MHeight=(faHeight+moHeight)*0.54;
        if(sports=='Y')
            A = MHeight*0.02;
        else
            A = 0;

        if(diet=='Y')
            B = MHeight*0.015;
        else
            B = 0;

        C=A+B+MHeight;
    }
    else
    {
        FHeight=(faHeight*0.923+moHeight)/2;
        if(sports=='Y')
            A = FHeight*0.02;
        else
            A = 0;
        if(diet=='Y')
            B = FHeight*0.015;
        else
            B = 0;

        C=A+B+FHeight;
    }
    
    printf("%f",C);
    return 0;
}

有什么疑问?运行结果不对吗?