为了账号安全,请及时绑定邮箱和手机立即绑定

反向波兰符号计算:两个正数的减法返回一个减号?

反向波兰符号计算:两个正数的减法返回一个减号?

千巷猫影 2022-09-01 19:34:22
在我的反向波兰符号计算器上执行两个数字的减法时,我得到一个负数结果,例如: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);

}


查看完整回答
反对 回复 2022-09-01
?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

你弹出,然后.也就是说,您需要反转减法的顺序:520

int result = n2 - n1;


查看完整回答
反对 回复 2022-09-01
  • 2 回答
  • 0 关注
  • 92 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信