请高手帮我注释下程序

来源:百度知道 编辑:UC知道 时间:2024/05/21 14:27:45
这是程序的函数部分,麻烦高手帮帮忙~~越详细越好~~谢谢了
#define N 100
double numStack[N]={0};
int numTop;
char opStack[N];
int opTop;

int op(char ch)
{
if(ch=='+'||ch=='-') return 2;
if(ch=='*'||ch=='/') return 3;
if(ch=='(') return -1;
return 0;
}

double result(double num1,char op,double num2)
{
if(op=='+') return num1+num2;
if(op=='-') return num1-num2;
if(op=='*') return num1*num2;
if(op=='/') return num1/num2;
return 0;
}

int compute(char str[])
{
double num=0;
int i=0,j=1,k=1;
int Flag=0;
numTop=opTop=0;
while(str[i]!='\0'||opTop>0)
{
if(str[i]>='0'&&str[i]<='9')
if(Flag==0)
num=num*10+str[i]-'0';
else
{
num+=(str[i]-'0')/(j*10.0);
j*=10;
}
else

#define N 100
double numStack[N]={0};/*操作数堆栈*/
int numTop; /*操作数堆栈栈顶相对栈底的偏移量,可以用来判断堆栈是否为空*/
char opStack[N];/*界符堆栈*/
int opTop; /*界符堆栈栈顶相对栈底的偏移量,可以用来判断堆栈是否为空*/

int op(char ch) /*将运算符映射为数字,表示优先级*/
{
if(ch=='+'||ch=='-') return 2;
if(ch=='*'||ch=='/') return 3;
if(ch=='(') return -1;
return 0;
}

double result(double num1,char op,double num2)
{ /*执行运算*/
if(op=='+') return num1+num2;
if(op=='-') return num1-num2;
if(op=='*') return num1*num2;
if(op=='/') return num1/num2;
return 0;
}

int compute(char str[]) /*分析表达式*/
{
double num=0;
int i=0,j=1,k=1;
int Flag=0;
numTop=opTop=0;
while(str[i]!='\0'||opTop>0)
{
if(str[i]>='0'&&str[i]<='9') /*如果当前字符是阿拉伯数字字符*/
if(Flag==0) num=num*10+str[i]-'0';