简单c语言程序例子运算。

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

这是我个人学习简单c语言程序例子的练习,如果对你有帮助请关注我,我将不定期更新如果疑问或者建议可以在评论区留言沟通。


 
 printf("对不起您输入的数字有误请重新输入。\n");

中序表达转换成后序表达式的方法:

从左到右读取该中弱序表达式:

1.若是操作数则直接输出.

(1)若该运算符为"(",则直接入栈.

(2)若该运算符为")",则取出堆栈中的运算符,直到"("时.

(3)其它: 按优先级比较如果大于或等于堆栈中当前的运算则压入栈中,否则直接输出.

(4)检查栈是否非空如果非空,则输出所有值直到空为止.

棧运算。维护一个变量栈和一个符号栈(数字认为是变量) 

可以看到优先级高的符号先算。为了方便起见先在表达式两边加括号。 

依佽读入每个字符如果是变量则入变量栈。如果是符号就与栈顶符号比较优先级。 

如果相等则同时退栈(不处理,读下一字符) 

如果栈外大,则入栈 

如果栈内大,则以栈内符号为根变量栈最顶2元素成为他的孩子(该2变量退栈),创建一个新的变量代表这颗以该符號为根两变量为孩子的树。同时栈外的这个符号保留继续与栈顶比较。 

还原成树结构取出变量栈中的最后一个元素(如果表达式合法,此时符号栈应为空变量栈仅有1个变量),依次扩展具体可以使用以下数据结构: 

(我是学PASCAL的,不会C所以用PASCAL语言写出来咯。。) 

时进行了如下操作 

继续处理),此时栈外)与栈内(优先级相等,同时退栈,继续, 

接着)退栈,最后边的)也和最左边的(一起退栈,此时表达式处理完毕,符号棧为空,变量栈有一个变量p2 

p2记录了完整的二叉树,还原后得到了 


菜单放在屏幕中央位置

必须先運行1输入数据,才能运行2四则运算

要求依据用户输入的‘+’、‘-’、‘*’、‘、’四个运算符进行相应运算。

P.S.本人大一新生刚学一个朤简单c语言程序例子,所以能编简单点就编简单点谢谢

我要回帖

更多关于 简单c语言程序例子 的文章

 

随机推荐