用C创建一个计算器

时间:2014-07-08 22:54:29

标签: calculator

我知道如何轻松制作一个计算器,用单个运算符处理两个或三个操作数(乘以除以 ...)。

但是如何编写一个处理正常语法和多个操作数的句子,比如6 * 6 / 3 + 2或者可能只是他们的反向抛光符号6 6 * 3 / 2 +

1 个答案:

答案 0 :(得分:0)

您可以创建一个相当简单的递归下降解析器,它可以解析任意复杂的算术表达式。解析器生成表达式的树表示,其表示算术的各种优先级/关联性规则。

树的节点将是操作(*,/,+, - ),叶子将是数字。

然后评估表达式就是走树并从下往上评估每个节点,直到你到达最终结果的顶部。

Google将提供大量使用各种语言执行此操作的示例。