要求出孩子的期望身高,但是求出来的是错的,请高手帮忙改下
#include "stdio.h"
void main()
{
float a,b,h,high;
char c,d,e;
// printf("x表示父亲身高,y表示母亲身高,c表示性别,d表示是否爱运动,e表示有没良好的饮食习惯");
scanf("%f%f",&a,&b);
printf("请输入y或者n判断您的性别,y表示男,n表示女:");
scanf("%*c%c",&c);
if(c=='y')
{
h=(a+b)*1.08/2;
}
else
{
h=(0.932*a+b)/2;
}
printf("请输入y或者n选择您有没有良好的运动,y表示有,n表示没有:");
scanf("%*c%c",&d);
if(d=='y')
{
high=h*0.02;
}
printf("请输入y或者n,y表示有良好的饮食习惯,n表示没有:");
scanf("%*c%c",&e);
if(e=='y')
{
high=h*0.03;
}
printf("%f\n",high);
}
把h的改掉
high=(a+b)*1.08/2;
high=(0.932*a+b)/2;
high*=0.02;
high*=0.03;
printf("%f\n",high);
还回答不上我。。。。。
不知你的期望值是多少,改了两处明显的逻辑错误,黑色粗体标出。但还有两外有点不理解做运动和有良好饮食习惯的孩子,个子会更小?
#include "stdio.h"
void main()
{
float a,b,h,high;
char c,d,e;
printf("x表示父亲身高,y表示母亲身高,c表示性别,d表示是否爱运动,e表示有没良好的饮食习惯");
scanf("%f%f",&a,&b);
printf("请输入y或者n判断您的性别,y表示男,n表示女:");
scanf("%*c%c",&c);
if(c=='y')
{
h=(a+b)*1.08/2;
}
else
{
h=(0.932* (a+b) )/2; //加了个括号
}
printf("请输入y或者n选择您有没有良好的运动,y表示有,n表示没有:");
scanf("%*c%c",&d);
if(d=='y')
{
h *=0.02;
}
printf("请输入y或者n,y表示有良好的饮食习惯,n表示没有:");
scanf("%*c%c",&e);
if(e=='y')
{
h*=0.03;
}
high=h;
printf("%f\n",high);
}
scanf("%*c%c",&c);
这一句写的很怪异,为啥不写成scanf("%c",&c); 呢?