永发信息网

后缀表达式求值 C++ 程序有问题,执行a.out '2 1 -'结果是 -1,需要怎么修改?

答案:2  悬赏:40  手机版
解决时间 2021-02-12 07:27
#include
#include
#include "STACK.cxx"
using namespace std;

int main(int argc, char *argv[])
{
char *a=argv[1];
int N = strlen(a);
STACK save(N);
for (int i=0; i {
if (a[i]== '+')
save.push(save.pop()+save.pop());
if (a[i]== '*')
save.push(save.pop()*save.pop());
if (a[i]== '-')
{
save.push(save.pop()-save.pop()); //就算这里掉换顺序也一样
}
if (a[i]=='/')
save.push(save.pop()/save.pop());
if((a[i]>='0')&&(a[i]<='9'))
save.push(0);
while ((a[i]>='0')&&(a[i]<='9'))
save.push(10*save.pop()+(a[i++]-'0'));
}
cout << save.pop() << endl;
}
~
~
~

save.push(save.pop()-save.pop()); 为什么不能这样用?
最佳答案
你不能这样用啊save.push(save.pop()-save.pop()); //就算这里掉换顺序也一样

可以这样啊:
int a = save.pop();
int b = save.pop();

if (a[i]== '-')
{
save.push(b-a); //ok吧
}
全部回答
你好! 恩,1楼的 用了简化蛮好 的,LZ可以试下1楼的 仅代表个人观点,不喜勿喷,谢谢。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
上海市普陀区石岚新村幼儿园地址在什么地方,
上海市普陀区曹杨新村第六幼儿园地址在哪,我
(10分)下图为人体内血糖调节过程示意图,a
好吃屋博雅新城店地址在什么地方,想过去办事
我创建了一个微信公众号,但是想不出一个好的
兰溪路幼儿园怎么去啊,我要去那办事
甲状腺结节症状有哪些
金水缘足道怎么去啊,有知道地址的么
注册会计师发现乙公司有如下对所审计期间2013
上海市普陀区汇丽幼儿园地址好找么,我有些事
我买了个约克夏六个月二千贵吗
宝鸡天泰商贸有限公司我想知道这个在什么地方
咸安区咸宁初见(福宁商业步行街)这个地址在什
与“汾酒”有关的诗词有哪些?
上海市普陀区童的梦艺术幼儿园颐和园地址在什
推荐资讯
从纽扣助手下的小米系统怎么删除
cam卡是什么
本人二十 脸爱干 上妆不服贴 用赫拉气垫bb好
柳州东城华美达广场酒店内游泳池地址在哪,我
我想知道24节气个代表的花朵
吸油烟机后边没地方挂怎么办
【工业革命完成的标志】>英国完成工业革命的
关于考研调剂!急!马上预报名了!
你知道DW 的意思吗?好了,9.28∼10.1晚安
区在姓氏里读什么
你好 我家电信100兆光纤应该用多少M路由器最
建设单位应当在竣工验收后()个月内,报送有关
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?