【发布时间】:2013-06-11 09:36:30
【问题描述】:
我有两个数组,其中一个有整数,另一个有运算符的字符。所以,假设我有以下数组:[12, 3] 和 ['+']。我想把它转换成表达式 12 + 3,它会立即被计算(给我 15)。它还应该保留操作顺序,所以如果我有 [12, 3, 4] 和 ['+', '*'],它应该给我 12 + 3 * 4,(即 24)。我保证 char 比 int 的数量少一个,所以总是有正确数量的运算符。可以在C中做到这一点吗?如果有,怎么做?
谢谢。
【问题讨论】:
-
在 C 中是可能的。你试过任何代码吗?
-
也许你正在寻找binary expression trees
-
@ M M 如何在不使用条件的情况下将运算符从字符中取出(因为这会影响运算顺序)?
-
@blacktrance:呃,什么?
-
@thejh:我知道可以使用条件 - 如果是 '+',则取数组的前两个元素并将它们相加,如果是 '',则取前两个元素数组并将它们相乘,依此类推。但这并不能保留操作顺序,因为如果我有一个类似 [1, 2, 3] 的数组和另一个类似 ['+', ''] 的数组,并且我使用条件对其进行评估,我当我想要 1+(2*3) 时得到 (1+2)*3。