求助 第二个scanf() 怎么没作用
#include<stdio.h>int main()
{
float a,b,j;
char c;char q;
k:printf("请输入式子;");
scanf("%f%c%f",&a,&c,&b);
switch(c)
{
case '+' :j=a+b;printf("结果是;%.2f\n",j);break;
case '*' :j=a*b;printf("结果是;%.2f",j);break;
case '-' :j=a-b;printf("结果是;%.2f",j);break;
case '/' :
if(b!=0){
j=a/b;printf("结果是;%.2f",j);break;}
else
{
printf("除数不能为0");
}
}
printf("是否继续计算(Y/N):");
scanf("%c",&q);
if(q=='Y')
{
goto k;
}
return 0;
} 第二个scanf读取的是%c,那么需要在它前面加一句getchar(),用于清除缓冲区的回车字符,否则scanf读到的就是那个回车了。 第二个scanf读取的是%c,那么需要在它前面加一句getchar(),用于清除缓冲区的回车字符,否则scanf读到的就是那个回车了。
记住了,谢谢!
页:
[1]