编了一篇简单的计算机代码 但执行中有个不理解的地方 谢谢
代码如下:
#include<stdio.h>
int main(void)
{
float 数字1=0.0;
float 数字2=0.0;
char 运算符号=0.0;
char 回答=0.0;
开始:
printf ("请依次输入数字,符号,数字\n");
scanf ("%f %c %f",&数字1,&运算符号,&数字2);
switch(运算符号)
{
case '+':
printf("=%f\n",数字1+数字2);
break;
case '-':
printf("=%f\n",数字1-数字2);
break;
case '*':
printf("=%f\n",数字1*数字2);
break;
case '/':
if (数字2==0)
printf("你输入的有误请输入非零的数字\n");
else
printf("=%f\n",数字1/数字2);
break;
default:
printf("输入有误\n");
}
printf("是否要退出?(y/n)");
scanf("%c",&回答);
if (回答=='y'||回答=='Y')
goto 开始;
return 0;
}
问题:我想让它可以重复使用计算。但是在执行完scanf("%c",&回答);
这步时会自动退出程序。 该怎么解决?
[解决办法]
++
scanf ("%f %c %f",&数字1,&运算符号,&数字2);
再这一句输入之后,你会敲一个回车来确认,然后这个回车会被 scanf("%c",&回答);读走,于是c='\n'了,所以你应该先清空缓冲区