算数表达式求解 C语言
时间: 2024-09-26 16:06:17 浏览: 49
在C语言中,计算算术表达式通常涉及基本的数学运算符如加减乘除(+ - * /)、取模(%),以及幂运算(**)。你可以使用`scanf`函数从用户那里获取输入的表达式,然后通过一系列if-else、switch-case结构或栈数据结构解析和求值。
以下是一个简单的例子,展示如何使用递归函数求解一个两个操作数的加法或减法表达式:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义一个函数用于求解表达式的值
int evaluate(char* expression) {
int num1 = 0;
char operator;
// 提取数字和运算符
while (isdigit(expression[0])) {
num1 = 10 * num1 + expression[0] - '0';
expression++;
}
operator = expression[0];
expression++;
int num2;
if (expression[0] != '\0') {
num2 = evaluate(expression);
} else {
num2 = 0; // 如果遇到空,直接返回num1
}
switch (operator) {
case '+':
return num1 + num2;
case '-':
return num1 - num2;
default:
printf("Invalid operator\n");
exit(1); // 非法运算符处理
}
}
int main() {
char input[100];
printf("Enter an arithmetic expression: ");
fgets(input, sizeof(input), stdin);
// 移除fgets带来的换行符
input[strlen(input) - 1] = '\0';
int result = evaluate(input);
printf("Result: %d\n", result);
return 0;
}
```
阅读全文