gpt4 book ai didi

c++ - 我的反向波兰符号计算器需要帮助

转载 作者:行者123 更新时间:2023-11-30 02:42:06 24 4
gpt4 key购买 nike

我正在开发一个程序来制作逆波兰符号计算器,我想知道是否有人可以给我一些提示。计算器将从用户那里获取一行,如 2 3 + 7 4 - *;中间有空格,我想在每次操作后打印一个结果。

这是我的部分代码

#include <iostream>
#include <string>
#include <stack>
#include <sstream>
using namespace std;

int main() {
stack<float>stack;
int i;
float num,result,first,second;
char op,ch;
string str;

getline(cin,str);
istringstream is(str);
for(int i=0;i<str.size();i++) {
is>>num;
stack.push(num);
}
for (i=0;i<str.size();++i) {
ch=str[i];
}
if (ch=='+'||'-'||'*'||'/') {
if (ch='+') {
first=stack.top();
stack.pop();
second=stack.top();
stack.pop();
result=first+second;
stack.push(result);
cout<<result;
}
// } // missing from question
//}

结果我得到了奇怪的数字。我是否正确阅读了我的堆栈?

最佳答案

这可能不是您唯一的问题,但您有:

if (ch=='+'||'-'||'*'||'/') {

当你可能真正的意思是:

if (ch=='+' ||
ch=='-' ||
ch=='*' ||
ch=='/') {

在你下面还有:

if (ch='+') {

你的意思可能是:

if (ch=='+') {

= 是赋值(您将 ch 设置为 '+'),而 == 是比较(您正在测试 ch 是否等于 '+')

关于c++ - 我的反向波兰符号计算器需要帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27416300/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com