数据结构栈问题求助
来源:互联网 发布:大数据风控模型 编辑:程序博客网 时间:2024/05/22 17:49
#include "stdio.h"#define DT char#define M 100typedef struct{ DT data[M]; int top;}SEQSTACK;SEQSTACK INI(){ SEQSTACK S; S.top=0; return(S);}SEQSTACK PUS(SEQSTACK S,DT x){ if(S.top==M-1) printf("栈满\n"); else S.top++; S.data[S.top]=x; return (S);}SEQSTACK POP(SEQSTACK S){ if(S.top==0) printf(" 空栈\n"); else S.top--; return (S);}char GET(SEQSTACK S){ if(S.top==0) { printf("空栈\n"); return '\0'; } else return (S.data[S.top]);}char pre(char c){ switch(c){ case '#': c=0;break; case '+': case '-': c=1;break; case '*' : case '/': c=2;break; } return c;}int com(int x,int y,DT z){ int rs; switch(z){ case'-': rs=x-y;break; case'+': rs=x+y;break; case'*': rs=x*y;break; case'/': rs=x/y;break; } return rs;}int exp(DT q[20]){ SEQSTACK NDS,OPS; char x,y,z; int result=0,i=0; NDS=INI(); OPS=INI(); OPS=PUS(OPS,'#'); for(i=0;q[i]!='#';i++){ if(q[i]<='9'&&q[i]>='0'){ NDS=PUS(NDS,q[i]-48); } else if(pre(q[i]<=pre(GET(OPS)))){ y=GET(NDS); NDS=POP(NDS); x=GET(NDS); NDS=POP(NDS); z=GET(OPS); OPS=POP(OPS); NDS=PUS(NDS,com(x,y,z)); OPS=PUS(OPS,q[i]); } else OPS=PUS(OPS,q[i]); }while(GET(OPS)!='#'){ y=GET(NDS); NDS=POP(NDS); x=GET(NDS); NDS=POP(NDS); z=GET(OPS); OPS=POP(OPS); NDS=PUS(NDS,com(x,y,z)); } result=GET(NDS); return (result);} main() { char q[20]; int result; printf("输入运算表达式\n"); gets(q); result=exp(q); printf("%d",result); }这个程序无法识别用户输入两位数值的预算。求助改动
0 0
- 数据结构栈问题求助
- 求助!!数据结构问题
- 数据结构的问题求助
- 求助!!!数据结构问题.大家帮帮忙哦!别看我是菜鸟。。。。。。
- 求助问题
- 问题求助?
- 问题求助
- 求助 求助 BIRT CHART 汉字问题
- 求助java小问题
- 求助 谢谢 两个问题
- 求助?WinCE的问题
- 求助,asp问题
- 表单设计问题,求助!
- 求助一个Ajax问题
- 紧急求助 组合问题
- 求助 积分问题
- 关于LR问题求助
- ICE问题求助
- 黑洞数问题
- Unity NGUI 使用经验
- lua面向对象编程之点号与冒号的差异详细比较
- ——Diary1(Java基础——概述)
- 读《Android开发精要》
- 数据结构栈问题求助
- 《千与千寻》给读者带来了什么?
- Unity反射材质制作——镜中花,水中月,但是非镜面效果哟
- Lua查找表元素过程__index
- 关于 Wi-Fi RSSI
- 《黑客与画家》摘抄 一
- poj3040(双向贪心)
- UVa 12715 Watching the Kangaroo(二分)
- 《黑客与画家》摘抄 二