{
if(In(c))//是符号则进栈 {
switch(Precede(e,c)) {
case'<': //栈顶元素优先级低 Push(OPTR,c); c=getchar(); break;
case'=': //脱括号并接受下一字符 Pop(OPTR,e); c=getchar(); break;
case'>': //退栈并将运算结果入栈 Pop(OPTR,e); Pop(OPND,b); Pop(OPND,a);
Push(OPND,Operate(a,e,b)); break; }//switch }
else if(c>='0'&&c<='9'||c=='.') { int i=0;
while(c>='0'&&c<='9'||c=='.') {
Data[i]=c; i++; c=getchar(); }
Data[i]='\\0';//数字没有存满,输入字符串结束符
d=atof(Data);//此处是把数组里的数字,实际上是按字符串;转换为double类型,然后把浮点型数字入栈
Push(OPND,d);//atof函数的形参是指针类型,故用数组名 }
else {
cout<<\输入错误!\ exit(-1); }
GetTop(OPTR,e); }//while
GetTop(OPND,e); return e;
}//EvaluateExpression
////////////////////////////////////////////////////////////////////////////
/*主函数main.cpp*/
int main() {
SElemType result;
cout<<\请输入表达式,以#号结束\ result=EvaluateExpression(); cout<<\结果为:\ return 0; }