z_yk @ 2022-08-27 10:41:57
各位大佬帮忙看一下错在哪里,谢谢
#include<iostream>
#include<stack>
using namespace std;
stack<char>st;
int main()
{
string a;
long long ans = 0;
cin >> a;
for (int i = 0; i < a.length(); i++)
{
if (a[i] > '0' && a[i] < '9')
{
st.push(a[i]);
}
else if (a[i] = '+')
{
int temp1, temp2;
temp1 = st.top() - '0';
st.pop();
temp2 = st.top() - '0';
st.pop();
ans += temp1 + temp2;
}
else if (a[i] = '-')
{
int temp1, temp2;
temp1 = st.top() - '0';
st.pop();
temp2 = st.top() - '0';
st.pop();
ans += temp2 - temp1;
}
else if (a[i] = '*')
{
int temp1, temp2;
temp1 = st.top() - '0';
st.pop();
temp2 = st.top() - '0';
st.pop();
ans += temp2 * temp1;
}
else if (a[i] = '/')
{
int temp1, temp2;
temp1 = st.top() - '0';
st.pop();
temp2 = st.top() - '0';
st.pop();
ans += temp2 / temp1;
}
else continue;
}
cout << ans;
return 0;
}
by char_cha_ch @ 2022-08-27 10:49:28
头像……
by char_cha_ch @ 2022-08-27 10:50:09
@臧翊凯123456 判断数字的地方错了
by z_yk @ 2022-08-27 10:54:02
我是不是应该把算出来ans再压入栈,再改一下循环次数,然后再用字符存储表达式
(不要在意头像)
by idgg007 @ 2022-08-27 11:06:51
@kirihara233 大佬能帮我看看吗?帖子