| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1486 人关注过本帖
标题:C语言实现 波兰式计算器
取消只看楼主 加入收藏
sjzxtzhl
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-4-16
收藏
 问题点数:0 回复次数:0 
C语言实现 波兰式计算器
背景
以下是几个标准的表达式:

5 * 2 + -3
5 * (2 + -3)
5 + ((-4 * -5) + (((5 + (6 - 2)) * 7 + ((4 + 2) * (3 - 1))))
与之等价的波兰表达式为

+ * 5 2 -3
* 5 + 2 -3
+ 5 + * -4 -5 + * + 5 - 6 2 7 * + 4 2 - 3 1
在普通的表达式中,符号是位于运算对象之间的,而在波兰表达式中,运算符号位于参与运算的对象之前。

波兰式在计算中的价值在于它不需要使用括号,之所以如此是由于波兰式的操作符的先后顺序是明确的。

如果我们用 P 表示波兰表达式,用 O 表示操作符,用 D 表示数字,则可以将波兰表达式定义为 P = O P P 或 P = D。


任务
编写程序计算波兰表达式的值。

输入
输入第一行是一个整数,表示输入文件中共有几个波兰式,之后每一行是一个波兰表达式。

每个表达式包含数字和二元操作符 +、-、*,操作数和运算结果都在 [-101000, 101000] 之间。

可以假设每行的数据(运算符号和数字)总共不超过 100 个。

输出
对每个表达式输出其值。

测试输入

15
 + 10 21
 + 10 -21
 + -10 21
 + -10 -21
 - 10 21
 - -10 21
 - 10 -21
 - 21 10
 * 10 21
 * -10 21
 * 10 -21
 * -10 -21
 + 5 + * -4 -5 + * + 5 - 6 2 7 * + 4 2 - 3 1
 + 1 + 1 + 1 + 1 + 1 * 2 * 2 * 2 - 8 - 7 - 6 - 5 4
 + - + 5 2 * 2 2 * 1 3

期待的输出

31
 -11
 11
 -31
 -11
 -31
 31
 11
 210
 -210
 -210
 210
 100
 53
 6
搜索更多相关主题的帖子: 波兰式 计算器 C语言 操作符 符号 
2008-05-11 11:34
快速回复:C语言实现 波兰式计算器
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018945 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved