学霸破解让你先跑39米:一个看似简单其实复杂的C语言问题

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/29 05:33:41
读入一个表达式,含+,-,*,/,和(,),以'='结束,如输入13+11-6*4*(8-7/2)=,计算出结果,曾经是北邮的期末考上机题,困扰小弟至今,求答案
小弟刚升大二,还没开学,故对波兰式一窍不通,不然老师也不会考了,故十分想得到原程序,或相关资料的网址,谢

给你说下思路吧,程序最好是自己写。
读入就用getchar()逐个字符读入,保存到字符数组中,读到'='结束。
再就是用中缀式转成后缀的思路计算(波兰式)(当然需将如13的字符转成int类型的数),这个过程用到了堆栈。自己先试着用程序实现,遇到问题可以再问我。

堆栈,波兰式
LL算法..
都能秒杀

写程序就免了
推荐 Data Structures and Algorithm Analysis in C
第三章,详细介绍这个怎么做