c语言计算器先计算乘除法再计算加减法,不用栈
时间: 2023-08-10 15:04:32 浏览: 212
可以使用两个变量来保存当前计算的结果和符号,每次读入一个数字和一个符号,根据上一个符号的优先级来进行计算。具体实现如下:
```c
#include <stdio.h>
int main() {
int result = 0; // 当前计算结果
char op = '+'; // 上一个符号,默认为加号
int num; // 当前读入的数字
while (scanf("%d", &num) == 1) {
switch (op) {
case '+':
result += num; // 加法
break;
case '-':
result -= num; // 减法
break;
case '*':
result *= num; // 乘法
break;
case '/':
result /= num; // 除法
break;
}
// 读入下一个符号
scanf("%c", &op);
// 如果是加号或减号,则下一步计算要先进行乘除法
if (op == '+' || op == '-') {
// 输出当前结果,并清空
printf("%d\n", result);
result = num;
}
}
// 输出最终结果
printf("%d\n", result);
return 0;
}
```
需要注意的是,该计算器对输入格式有一定要求,每个数字和符号之间需要用空格隔开,最后一个数字后不能再有符号。例如输入 `1 + 2 * 3 - 4 / 2`。
阅读全文