- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
#includestdio.h#includestdlib.h
#includestring.h typedef struct(
char op;
int level;JOpNode;
typedef struct(
OpNode op[100];
int top;} stack;
void init(stack *st)(
st-top=0;)
OpNode pop(stack *a){
if (a-top==0)
return a-op[—(a-top)];)
void push(stack *a,OpNode op)(
a-op[(a-top)++]=op;)
OpNode top(stack *a)(
if (a-top==0)
return a-op[(a-top)-l];)
typedef struct(
double num[100];
int top;} numstack;
void init2(numstack *st)
st-top=0;double pop2(numstack *a)
if (a-top==0)
(
return(-l);
)
a-top;
return a-num[a-top];)
void push2(numstack ^a,double num)(
a-num[(a-top)++]=num;)
void main()
(
void change (char str[],char exp[]);
double CalResult(char exp[]);
double Directcalresult(char str[]);
char str[100],exp[100];
printf(算术表达式为:\n);
gets(str);
change(str,exp);
gets(exp);
printf(后缀表达式为:%s\n”,exp);
printf(运算结果为:%f\nH ,CalResul t(exp));
printf(直接运算的结果为:%f\n ,Directcalresult(str));void change (char str[],char ch[]) (
int i=0;
int k=0;
char c;
stack st;
OpNode op;
OpNode ops;
init(st);
c=str[i++];
while (c!=\0)if ((c=Oc=9)||c==.)
while ((c=0c=,9,)||c==1.)ch[k++]=c;
c=str[i++];)
ch[k++]=T;)
if(c==()(
op.op-(;op.level=-l;
push(st,op);)
if(c=)){
op=top(st);while (st.top! =0op.op!=,()
(op=pop(st);
chfk++]=op.op;if (st.top0) op=top(st);
else break;)
pop(st);}
if(c==Tc=?)(
op.op=c;op.level=l;
if (st.top==0)(
push(st,op);/)
else(
ops=top(st);while (ops.level=op.level)(
ops=pop(st);ch[k++]=ops.op;
if (st.top0) ops=top(st);else
break;push(st,op);
))
if(c==^f||c==7,||c==,%)(
op.op=c;op.level=2;
if (st.top==0) (push(st,op);
) else ( ops=top(st);while (ops.level=op.level) (
ops=pop(st); ch[k++]=ops.op;if (st.top0) ops=top(st);
else break;
) push(st,op);)
)
c=strfi++];
)
while(st.top!=0)(
ops=pop(st); ch[k++]=ops.op;
) ch[k]=\O;double CalResult(char exp[]) (
char c;numstack numst;
double dl,d2,dr;int k=0;
int i=0;char *s;
char transflOO];init2 (numst);
c=exp[k++];while (c!=0‘)
(if(c=-+||c==-,||c=-*|||c==7|||c=-%1)
{switch(c)
(case:
d2=pop2(numst);d 1 =pop2(numst);
dr=dl+d2;
push2(numst,d
您可能关注的文档
最近下载
- 公司事故隐患内部报告奖励制度.docx VIP
- 机房搬迁实施方案.pptx VIP
- DB65-T8022-2024 严寒和寒冷地区居住建筑节能设计标准J11921-2024(OCR).pdf VIP
- fNirs近红外成像技术原理-近红外脑成像系统.pdf VIP
- 2025年浙江省卫生系统事业单位人员招聘考试模拟试题及答案解析.pdf VIP
- 菏泽家政职业学院教师招聘考试历年真题.docx VIP
- 2011年南宁市事业单位公开考试招聘工作人员简章.doc VIP
- 建设年产40万吨蛋氨酸项目可行性研究报告写作模板-申批备案.doc
- 广东省东莞市2024-2025学年高一上学期1月期末英语试题含答案.pdf VIP
- 2025年新版医疗器械经营质量管理规范.pdf VIP
文档评论(0)