哪个大虾帮我编写个带优先的四则运算计算器

来源:百度知道 编辑:UC知道 时间:2024/05/27 11:13:56
哪个大虾帮我编写个带优先的四则运算计算器,比如1+2*3-4/2结果=5
先乘除后加减。不带优先的就算了!

#include<stdio.h>
#include<ctype.h>
#include<stdlib.h>
char token[61]; /*存放表达式字符串的数组*/
int n=0;
void error(void) /*报告错误函数*/
{
printf("ERROR!\n");
exit(1);
}
void match(char expected) /*检查字符匹配的函数*/
{
if(token[n]==expected)
token[++n]=getchar();
else error();
}
double term(void); /*计算乘除的函数*/
double factor(void); /*处理括号和数字的函数*/
double exp(void) /*计算加减的函数*/
{
double temp=term();
while((token[n]=='+')||(token[n]=='-'))
switch(token[n])
{
case'+':match('+');
temp+=term();
break;
case'-':match('-');
temp-=term();
break;
}
return temp;
}
double term(void)
{
double div;
double temp=factor();