用C语言写一个可以处理括号内运算的计算器
时间: 2023-11-20 10:04:43 浏览: 100
C语言实现计算器混合运算(含括号,加减乘除)
好的,下面是一个简单的可以处理括号内运算的计算器的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
int calc(char *expr);
int calc_expr(char **expr);
int calc_num(char **expr);
int main() {
char expr[256];
printf("请输入表达式:\n");
fgets(expr, 256, stdin);
printf("结果为:%d\n", calc(expr));
return 0;
}
int calc(char *expr) {
return calc_expr(&expr);
}
int calc_expr(char **expr) {
int num1 = calc_num(expr);
while (**expr == '+' || **expr == '-') {
char op = **expr;
(*expr)++;
int num2 = calc_num(expr);
if (op == '+') num1 += num2;
else num1 -= num2;
}
return num1;
}
int calc_num(char **expr) {
int num = 0;
if (**expr == '(') {
(*expr)++;
num = calc_expr(expr);
(*expr)++;
} else {
while (**expr >= '0' && **expr <= '9') {
num *= 10;
num += **expr - '0';
(*expr)++;
}
}
return num;
}
```
这个计算器的基本原理是:先处理括号内的表达式,然后按照运算符的优先级依次计算表达式的值。其中,calc_expr函数用于处理括号内的表达式,calc_num函数用于处理数字,calc函数是计算器的入口。这个计算器支持加减运算,可以处理多层括号嵌套的表达式。
阅读全文