用C完成下面题目:【问题描述】 从标准输入中读入一个算术运算表达式,如:24 / ( 1 + 5/3 + 36 / 6 / 2 - 2) * ( 12 / 2 / 2 )= ,计算表达式结果,并输出。
时间: 2024-05-11 22:15:39 浏览: 82
好的,这个问题是关于编程的问题,我可以给您回答。以下是用C语言实现的代码:
```
#include <stdio.h>
int main() {
char expression[100];
double result = 0;
printf("请输入一个算术表达式,以等号结尾:\n");
scanf("%s", expression);
sscanf(expression, "%lf", &result);
char operator = '+';
int i = 0;
while (expression[i] != '=') {
if (expression[i] == '+' || expression[i] == '-' || expression[i] == '*' || expression[i] == '/') {
operator = expression[i];
} else {
double operand = 0;
sscanf(expression+i, "%lf", &operand);
switch (operator) {
case '+':
result += operand;
break;
case '-':
result -= operand;
break;
case '*':
result *= operand;
break;
case '/':
if (operand == 0) {
printf("发生了除数为零的错误。\n");
return 1;
}
result /= operand;
break;
}
i ++;
while (expression[i] != '+' && expression[i] != '-' && expression[i] != '*' && expression[i] != '/' && expression[i] != '=') {
i ++;
}
continue;
}
i ++;
}
printf("计算结果为:%lf\n", result);
return 0;
}
```
这个程序可以从标准输入中读入一个算术表达式,并计算并输出表达式的结果。如果在表达式中发生了除数为零的错误,则会输出一条错误信息。您可以根据需要对这个代码进行修改和优化。
阅读全文