永发信息网

数据结构表达式求值编程

答案:1  悬赏:10  手机版
解决时间 2021-07-25 20:02
向各位高手求救~

用+ - × /() 和 0 1 2 3 4 5 6 7 8 9 组成像这样的表达式:

8-6/2-3×4+(1+9)/2 然后编程求值,要求能运算任何表达式的值

栈的代码没有错,以下是主要的代码,出了问题,运行没有结果,请帮我指出错误的地方,谢谢啦~

int In(char c)
{ if(c=='+'||c=='-'||c=='*'||c=='/'||c=='('||c==')')
return 1;
else return 0;

}
char Precede(char a,char c){
char x;
char s[7][7];
int i,j;
s[0][0]=s[0][1]=s[0][5]=s[0][6]=s[1][0]=s[1][1]=s[1][5]=s[1][6]=s[2][0]=s[2][1]=s[2][2]=s[2][3]=s[2][5]=s[2][6]=s[3][0]=s[3][1]=s[3][2]=s[3][3]=s[3][5]=s[3][6]='>';
s[0][2]=s[0][3]=s[0][4]=s[1][2]=s[1][3]=s[1][4]=s[2][4]=s[3][4]='<';
for(i=0;i<7;i++)
{s[4][i]='<';s[5][i]='>';s[6][i]='<';}
s[4][5]='=';s[4][6]=0;s[5][4]=0;s[6][5]=0;s[6][6]='=';
if(a=='+') i=0;
if(a=='-') i=1;
if(a=='*') i=2;
if(a=='/') i=3;
if(a=='(') i=4;
if(a==')') i=5;
if(a=='#') i=6;
if(c=='+') j=0;
if(c=='-') j=1;
if(c=='*') j=2;
if(c=='/') j=3;
if(c=='(') j=4;
if(c==')') j=5;
if(c=='#') j=6;
return s[i][j];
}
char Operate(char a,char theta,char b){
int A,B,c;
char C;
A=a-'0';
B=b-'0';
switch(theta){
case'+': c=A+B;break;
case'-': c=A-B;break;
case'*': c=A*B;break;
case'/': c=A/B;break;
}
C=c+'0';
return C;
}

char EvaluateExpression(){


SqStack OPTR,OPND; char e,x,a,b;char theta;
InitStack(OPTR); Push(OPTR,'#');
InitStack(OPND); char c=getchar();
while(c!='#'||GetTop(OPTR,e)!='#'){
if(!In(c)){Push(OPND,c); c=getchar();}
else
switch(Precede(GetTop(OPTR,e),c)){
case'<': Push(OPTR,c);c=getchar();
break;
case'=': Pop(OPTR,x); c=getchar();
break;
case'>': Pop(OPTR,theta);
Pop(OPND,b);Pop(OPND,a);
Push(OPND,Operate(a,theta,b));
break;
}
}
return GetTop(OPND,e);
}


int main()
{ EvaluateExpression();

}

最佳答案
你好哦。
有幸看到你的问题。
但是又很遗憾到现在还没有人回答你的问题。也可能你现在已经在别的地方找到了答案,那就得恭喜你啦。
可能是你问的问题有些专业了,没人会。或者别人没有遇到或者接触过你的问题,所以帮不了你。建议你去问题的相关论坛去求助,那里的人通常比较多,也比较热心,可能能快点帮你解决问题。
祝你好运~!
希望我的回答也能够帮到你!
谢谢
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
曼联今年会不会三冠王
英语翻译我确信任何人穿上它看上去都很酷.I’
2008版手机QQ跟2009版的据体有什么差别?
不锈钢上的水渍怎样才能清除掉
CSOL的BUG在那?
我的预产期已经到了,今天早上流出一些不明液
是美男啊里面的几首歌叫什么名字啊?
征途 女号祝福灯摆放问题
IPOD的MP3充电一定要在有ITUNE的电脑上嘛?
考勤机怎么设置日期,打卡机怎么设置时间
我的问问2 级了怎么不亮啊?
电脑没有进入开机画面,直接进入启动画面,怎
北斗星有没有1.2排量的车。这款车怎么样
地下城从三十三到三十五级要多长时间?
请问台服多少等级能 买飞行坐骑!!!
推荐资讯
中考标语横幅班级,中考鼓劲标语
剑网3黄金识别码cdkey 剑网叁绑定推广员黄金
我对她那么好还那么的爱她而她一点都不爱我为
dnf什么时候出复仇
请问房子的大门搞多宽多高好啊!
找个人邀请QQ游戏人生
丁秋遗失的账目怎么接
《陋室铭》中主要有三种文言句式:1.判断句2.
QQ空间抢车位停车场堆满了垃圾而人家的的车停
爱你喂有咯是什么歌曲
血啸鞋值多少
这套时装国服大概什么时间能出来啊!~~~
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?