用c语言写出一个函数eveluate,根据输入的字符串输出计算结果
时间: 2024-10-10 17:08:47 浏览: 7
当然可以。在C语言中,你可以编写一个简单的函数`evaluate`来处理一些基本数学表达式,比如加减乘除。这里我们假设函数只能处理整数运算,并且没有考虑复杂的表达式解析和优先级问题。下面是一个基础的示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int evaluate(char *expression) {
char *token = expression;
int num1 = 0, num2 = 0;
int operator = '+'; // 默认加法
while (*token != '\0') {
if (isdigit(*token)) { // 如果是数字
num1 = num1 * 10 + *token - '0';
token++;
} else if (*token == '+' || *token == '-') { // 遇到操作符
operator = *token;
token++; // 跳过操作符
} else if (*token == '*' || *token == '/') { // 处理乘除
num2 = evaluate(token); // 递归处理后续部分
switch (operator) {
case '*':
num1 *= num2;
break;
case '/':
if (num2 != 0)
num1 /= num2;
else
return "Error: Division by zero";
break;
}
token = token - 1; // 回溯到操作符位置
} else {
break; // 非法字符,结束处理
}
}
return num1; // 返回最终结果
}
int main() {
char expr[] = "5 + 3 * 2";
printf("Evaluation result: %d\n", evaluate(expr));
return 0;
}
```
这个`evaluate`函数会根据输入的字符串逐步解析并计算结果。然而,注意这只是一个非常基础的实现,对于更复杂的表达式,如包含括号、优先级等,你可能需要引入栈来存储操作数和操作符。