注册 登录
编程论坛 C语言论坛

新手求助,这个循环内getchar()的意义是什么,为什么没有就不会第二次scanf

god666 发布于 2019-11-11 18:33, 1347 次点击
#include
int main()
{
int N,i;
scanf("%d",&N);
double h;
char S;
for(i=1;i<=N;i++)
{ getchar(); //这个getchar,如果没有的话只循环一次就结束了
scanf("%c%lf",&S,&h);
if(S=='M')
printf("%.2lf\n",h/1.09);
else
printf("%.2lf\n",h*1.09);

}   
}
3 回复
#2
rjsp2019-11-11 18:43
删掉 getchar()
改 scanf("%c%lf",
为 scanf(" %c%lf",
也就是%c前加个空格
#3
god6662019-11-11 18:49
回复 2楼 rjsp
大佬,这个getchar()或者加空格是为什么呀,为什么不加就不循环了呢
#4
rjsp2019-11-11 19:30
回复 3楼 god666
getchar 是读取一个字符
scanf的格式化参数中空白字符 表示略过0个或数个连续的空白字符
1