以下代码用于模块化计算器问题。输入数据为:
5 +3 * 7 +10 * 2 * 3 +1 % 11
#include <stdio.h>
int main(void) {
char oper;
int number,result;
scanf("%d",&number);
result=number;
do
{
oper=getchar();
fflush(stdin);
scanf("%d",&number);
if(oper=='+')
{
result=result+number;
}
else if(oper=='*')
{
result=result*number;
}
printf("%c %d %d ",oper,number,result);
}while(oper!='%');
result=result%number;
printf("%d",result);
return 0;
}
我得到的输出如下:
3 5
3 5 * 7 35
10 35
10 35 * 2 70
2 70 * 3 210
1 210
1 210 % 11 210 1
我似乎无法弄清楚为什么?
最佳答案
替换
oper=getchar();
fflush(stdin);
scanf("%d",&number);
与
scanf(" %c", &oper);
scanf("%d", &number);
关于c - 为什么我的 '+' 运算符被视为换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27323555/