C语言 已知父母身高预测孩子身高程序 求帮找错 简单的c语言程序 关于父母的身高推测孩子的身高 并证明公式的...

作者&投稿:资彦 (若有异议请与网页底部的电邮联系)
#include<stdio.h>
int main()
{
int faheight,moheight; \\这里用int
float a;
char sex,sport,habit, ch;
printf("Please input: Father's height(space)Mother's height(cm)\n");
scanf("%d %d",&faheight,&moheight);
{
printf("IF THE BABY IS A BOY?(y or n)\n");
while((ch=getchar())!='\n'); \\所有getchar之前加一行这个
sex=getchar();
if(sex=='y')a=(faheight+moheight)*1.0*0.54;
if(sex=='n')a=(faheight*0.923+moheight)/2;
getchar();
}
{
printf("DOES HE/SHE LIKE SPORTS?(y or n)\n");
while((ch=getchar())!='\n');
sport=getchar();
if(sport=='y') a=a*1.02;
if(sport=='n') a=a*1.0;
getchar();
}
{
printf("DOES HE/SHE HAVE GOOD HABITS?(y or n)\n");
while((ch=getchar())!='\n');
habit=getchar();
if(habit=='y')a=a*1.015;
if(habit=='n')a=a;
getchar();
}

printf("Height=%.2f cm",a);
return 0;

}

#include<stdio.h>
int main()
{
float faheight,moheight,a;
char sex,sport,habit;
printf("Please input: Father's height(space)Mother's height(cm)
");
scanf("%f %f",&faheight,&moheight);//%f
{
getchar();//接收'
'
printf("IF THE BABY IS A BOY?(y or n)
");
sex=getchar();
if(sex=='y')
a=(faheight+moheight)*1.0*0.54;
if(sex=='n')
a=(faheight*0.923+moheight)/2;
getchar();
}
{
printf("DOES HE/SHE LIKE SPORTS?(y or n)
");
sport=getchar();
if(sport=='y') 
a=a*1.02;
if(sport=='n')
a=a*1.0;
getchar();
}
{
printf("DOES HE/SHE HAVE GOOD HABITS?(y or n)
");
habit=getchar();
if(habit=='y')
a=a*1.015;
if(habit=='n')
a=a;
getchar();
}

printf("Height=%.2f cm",a);

return 0;

}


C语言,预测身高的程序,找错,运行结果是错的。求大仙~~

你的第二个和第三个输入的getchar()获得的是你上次输入的回车键,所以就直接输出了
在diet=getchar()和sports=getchar()前面都加上一个getchar()就可以了;

#include
#include
int main()
{
char sex,sports,diet;
float myHeight,faHeight,moHeight;
printf("输入性别M男或F女
");
scanf("%c",&sex);
printf("输入父亲身高和母亲身高
");
scanf("%f%f",&faHeight,&moHeight);
getchar();
printf("是否喜欢体育运动Y或N
");
sports=getchar();
getchar();
printf("是否有良好的饮食习惯Y或N
");
diet=getchar();
if(sex=='F')
myHeight=(faHeight*0.923+moHeight)/2;
if(sex=='M')
myHeight=(faHeight+moHeight)*0.54;
if(sports=='Y')
myHeight=myHeight+20;
if(diet=='Y')
myHeight=myHeight+10;
printf("这个孩子的身高为%f(cm)
",myHeight);
return 0;}

只要公式没错,这个程序就是对的了,scanf("%.1f",&b);输入的时候其实可以直接scanf("%f",&b);这样更好些。推荐用double比float要准些。