永发信息网

这个程序什么意思?exp是什么?s=exp[i++]-48

答案:1  悬赏:0  手机版
解决时间 2021-12-22 13:22
  • 提问者网友:精神病院里
  • 2021-12-22 03:22
int EvaluateExpression(){
SqStack OPND,OPTR;
char ch,theta,exp[100]={0};
int i=0,s=0,a=0,b=0;
InitStack(&OPND);
InitStack(&OPTR);
Push(&OPTR,'#');
gets(exp);
ch=exp[0];
while(ch!='#'||GetTop(&OPTR)!='#'){
if(!In(ch,OPSET)){//不是运算符则进栈
if(In(exp[i+1],OPSET)){//未出现连续数字
Push(&OPND,ch-48);
ch=exp[++i];
}
else//出现连续数字
{
s=exp[i++]-48;
while(exp[i]>='0'&&exp[i]<='9'){
s=s*10+exp[i++]-48;
}
Push(&OPND,s);
s=0;
ch=exp[i];
}
}
else
switch(precede(GetTop(&OPTR),ch)){
case '<'://栈顶元素优先权低
Push(&OPTR,ch);
ch=exp[++i];
break;
case '='://脱括号并接受下一字符
Pop(&OPTR);
ch=exp[++i];
break;
case '>'://退栈并将运算结果入栈
theta=Pop(&OPTR);
b=Pop(&OPND);
a=Pop(&OPND);
Push(&OPND,Operate(a,theta,b));
break;
}
}
return GetTop(&OPND);
}
最佳答案
  • 五星知识达人网友:三千妖杀
  • 2021-12-22 03:59
exp不是e的n次方吗.e好像等于2.71828....
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯