#include
int main()
{
float faHeight,moHeight,x,y;
char sex,sports,diet;
printf("小孩的性别(M为男,F为女):");scanf("%c",&sex);
printf("父母各自的身高:");scanf("%f,%f",&faHeight,&moHeight);
x=(faHeight+moHeight)*0.54;
y=(faHeight*0.923+moHeight)/2;
printf("是否喜爱体育锻炼(Y喜爱,N不喜爱):");sports=getchar();
if(sports=='Y')
{x=x*1.02;y=y*1.02;}
printf("是否有良好的饮食习惯(Y是,N不是):");diet=getchar();
if(diet=='Y')
{x=x*1.015;y=y*1.015;}
printf("预测的身高为:") ;
if(sex=='M')
printf("%4.3f",x);
else
printf("%4.3f",y);
return 0;
}
如图,输入完父母的身高后再按回车就跳过了对sports的输入,请问这是哪里出错了呢?
调试你会发现,在输入身高按回车后,换行符\n直接赋给了getchar()
所以这里还是要使用scanf
printf("是否喜爱体育锻炼(Y喜爱,N不喜爱):");
和
printf("是否有良好的饮食习惯(Y是,N不是):");
前面,各加上一个
fflushi(stdin);