c语言难题 请高手进来帮忙解决 在线等

2024-11-16 20:48:27
推荐回答(3个)
回答1:

#include
int main()
{
char sex,sports,diet;
double faHeight,moHeight,yourHeight;
printf("输入你的性别(F女/M男):");
scanf("%c",&sex);
getchar();
printf("输入你父亲的身高(cm):");
scanf("%lf",&faHeight);
getchar();
printf("输入你母亲的身高(cm):");
scanf("%lf",&moHeight);
getchar();
printf("你喜爱体育运动吗?(y/n)");
scanf("%c",&sports);
getchar();
printf("你有有良好的饮食习惯吗?(y/n)");
scanf("%c",&diet);
getchar();
if (sex=='F')
yourHeight=(faHeight*0.923 + moHeight) / 2;
else if (sex=='M')
yourHeight=(faHeight + moHeight)*0.54;
else printf("性别错误\n");
if (sports=='y') yourHeight=yourHeight*1.02;
if (diet=='y') yourHeight=yourHeight*1.015;
printf("你的身高为:%lfcm",yourHeight);
return 0;

}
你把程序改成这样就可以了!就是double和float的类型转换!

回答2:

float对应的格式为%f
强行转换格式要把类型括起来,例如(float)(yourHeight*1.015);
你的程序应把大小写也考虑F和f是不同的
输入应该精确到可测位数,例如百分位
这个是修改过的
int main()
{
char sex,sports,diet;
float faHeight,moHeight,yourHeight;
printf("输入你的性别(F女/M男):");
scanf("%c",&sex);
getchar();
printf("输入你父亲的身高(cm):");
scanf("%f",&faHeight);
getchar();
printf("输入你母亲的身高(cm):");
scanf("%f",&moHeight);
getchar();
printf("你喜爱体育运动吗?(y/n)");
scanf("%c",&sports);
getchar();
printf("你有有良好的饮食习惯吗?(y/n)");
scanf("%c",&diet);
getchar();
if (sex=='F'||sex=='f')
yourHeight=(float)((faHeight*0.923 + moHeight) / 2);
else if (sex=='M'||sex=='m')
yourHeight=(float)((faHeight + moHeight)*0.54);
else printf("性别错误\n");
if (sports=='y'||sports=='Y') yourHeight=(float)(yourHeight*1.02);
if (diet=='y'||diet=='Y') yourHeight=(float)(yourHeight*1.015);
printf("你的身高为:%.2fcm",yourHeight);
return 0;

}

回答3:

#include
int main()
{
char sex, sports, diet ;
double faHeight, moHeight, yourHeight ;
printf("输入你的性别(F女/M男):") ;
scanf("%c", &sex);
getchar();
printf("输入你父亲的身高(cm):") ;
scanf("%f",&faHeight) ;
getchar();
printf("输入你母亲的身高(cm):") ;
scanf("%f",&moHeight) ;
getchar();
printf("你喜爱体育运动吗?(y/n)") ;
scanf("%c",&sports);
getchar();
printf("你有有良好的饮食习惯吗?(y/n)") ;
scanf("%c",&diet);
getchar();
if (sex == 'F')
yourHeight = (faHeight*0.923 + moHeight) / 2 ;
else if (sex == 'M')
yourHeight = (faHeight + moHeight) * 0.54 ;
else printf("性别错误\n") ;
if (sports == 'y')
yourHeight = yourHeight * 1.02 ;
if (diet == 'y')
yourHeight = yourHeight*1.015 ;
printf("你的身高为:%fcm\n",yourHeight) ;
return 0 ;
}
#这个修改后的。。。。