为啥必须输入两个等号才可以跑呀,一个等号无法运行
{:10_269:}#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int num1,num2,count = 0;
char oper;
scanf("%d",&num1);
while (oper!='=')
{
oper = getchar();
scanf("%d",&num2);
if (oper == '+')
{
num1 += num2;
}
else if (oper == '-')
{
num1 -= num2;
}
else if (oper == '*')
{
num1 *= num2;
}
else if (oper == '/')
{
if (num2 == 0)
{
count++;
break;
}
num1 /= num2;
}
else if (oper == '=')
{
break;
}
else
{
count++;
break;
}
}
if (count == 1)
{
printf("ERROR");
}
else
{
printf("%d",num1);
}
system("pause");
} 你这不不是说连续输入俩个等号可以正常运行,而是在等号之后输入任意一个字符才可以运行(当然等号也是一个字符),比如你输入1+1=a他还是会显示2的,因为你结束循环的时候,里面又执行了一遍scanf("%d",&num); 描述不清,不是很清楚你的问题是什么
若你直接输入一个运算式,那么应该是不会出现你说的这个问题的。
但你若是输入一个数字,然后回车再输入运算符的话,那就会出错
因为,你你输入一个数字之后直接回车,scanf读取%d之后缓冲区会留一个回车字符,然后这个回车字符会被getchar读取。
页:
[1]