#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=(faHeight0.923+moHeight)/2;
if(sports=='Y')
{A=MHeight0.02;
A=FHeight0.02;
}
else
{A=0;
A=0;
}
if(diet=='Y')
{B=MHeight0.015;
B=FHeight0.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赋值的时候,男性数据都被女性数据覆盖了。如下图
代码修改如下:
#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;
}
有什么疑问?运行结果不对吗?