复习C语言中,按书上的题目写了一个简单的程序:
#include<stdio.h>
void main()
{
float h1,h2,h;
char sex,add1,add2;
printf("Please input sex:");
scanf("%c",&sex);
printf("Please input Father's height:");
scanf("%f",&h1);
printf("Please input Mother's height:");
scanf("%f",&h2);
printf("Like sport?");
add1=getchar();
printf("Have nice eating habit?");
add2=getchar();
if(sex=='F')
{
h=(h1*0.923+h2)/2;
}
if(sex=='M')
{
h=(h1+h2)*0.54;
}
if(add1=='Y')
{
h=h*1.02;
}
if(add2=='Y')
{
h=h*1.015;
}
printf("height may be %f/n",h);
}
字面看起来是没错误了,但add1死活就输入不进去,这是为什么呢?
原来是输入h2的时候,敲打回车输入,而把回车的字符“/n”输入到add1里了。。。
改成如下,成功通过:
#include<stdio.h>
void main()
{
float h1,h2,h;
char sex,add1,add2;
printf("Please input sex:");
scanf("%c",&sex);
printf("Please input Father's height:");
scanf("%f",&h1);
printf("Please input Mother's height:");
scanf("%f",&h2);
getchar();
printf("Like sport?");
add1=getchar();
getchar();
printf("Have nice eating habit?");
add2=getchar();
if(sex=='F')
{
h=(h1*0.923+h2)/2;
}
if(sex=='M')
{
h=(h1+h2)*0.54;
}
if(add1=='Y')
{
h=h*1.02;
}
if(add2=='Y')
{
h=h*1.015;
}
printf("height may be %f/n",h);
}