标题:大吓,come in!!
只看楼主
diliugan
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2004-12-7
 问题点数:0 回复次数:0 
大吓,come in!!

谁能帮我解释一下 利用堆栈 求表达式值中的一个函数:

代码如下:

void Process(NumStack *numstack,OpStack *opstack,char x){ double a,b; char c; static double tempnum=0.00000000;static int len=10;static int dot=0,flags=0; if(isdigit(x) || x=='.') { if(x=='.')dot=1; else { if(dot==0) tempnum=tempnum*10+Cint(x); else { tempnum=tempnum+(double)Cint(x)/len; len*=10; } } } else{ if(flags==0 && x!='('){PushNum(numstack,tempnum);tempnum=0.00000000;len=10;dot=0;} switch(Priority(opstack->array[opstack->top-1],x)) { case '>':PushOp(opstack,x);flags=0;break; case '<': PopOp(opstack,&c); PopNum(numstack,&b); PopNum(numstack,&a); PushNum(numstack,Calc(a,b,c));flags=1; Process(numstack,opstack,x);break; case '=':PopOp(opstack,&c);flags=1;break; default:printf("Wrong Express!"); } } }

搜索更多相关主题的帖子: come 堆栈 tempnum dot double 
2004-12-16 11:26



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-9479-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.166530 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved