在我的反向波兰符号计算器上执行两个数字的减法时,我得到一个负数结果,例如:20 5 - = -15然而,我希望看到15。任何人都可以看到我的代码出错的地方吗? else if (input.equals("-")) { int n1 = stack.pop(); int n2 = stack.pop(); int result = n1 - n2; stack.push((int)result); }
2 回答
精慕HU
TA贡献1845条经验 获得超8个赞
堆栈的原理是LIFO(最后一个进先出)。
因此,当您第一次推送然后推送到堆栈中时,第一个将返回,第二个将返回。因此,您计算而不是 .205pop5pop205 - 2020 - 5
您应该反转操作数的顺序以进行正确的计算:
else if (input.equals("-")) {
int n1 = stack.pop();
int n2 = stack.pop();
int result = n2 - n1;
stack.push((int)result);
}
添加回答
举报
0/150
提交
取消