| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 963 人关注过本帖
标题:大吓,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
快速回复:大吓,come in!!
数据加载中...
 
   



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

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