#include<iostream>
#include<vector>
#include<algorithm>
#include<sstream>
#include<cmath>
#include<iomanip>
#define _ ios::sync_with_stdio(false);cin.tie(0);
#define endl '\n'
using namespace std;
int main()
{_
string s;
stringstream ss;
string temp;
vector<long long int> vec;
while(getline(cin,s))
{
vec.clear();
ss.str("");
ss.clear();
ss<<s;
while(ss>>temp)
{
if(int(temp[0]>=48))
{
vec.push_back(int(temp[0]-48));
}
else if(int(temp[0])==43)
{
vec.at(vec.size()-2)+=vec.at(vec.size()-1);
vec.pop_back();
}
else if(int(temp[0])==45)
{
vec.at(vec.size()-2)-=vec.at(vec.size()-1);
vec.pop_back();
}
else if(int(temp[0])==42)
{
vec.at(vec.size()-2)*=vec.at(vec.size()-1);
vec.pop_back();
}
else if(int(temp[0])==47)
{
vec.at(vec.size()-2)/=vec.at(vec.size()-1);
vec.pop_back();
}
}
cout<<vec[0]<<" ";
cout<<endl;
}
}
測試可以,但顯示溢位或除以0的錯誤
#include
#include
#include
#include
#include
#include
#define _ ios::sync_with_stdio(false);cin.tie(0);
#define endl '\n'
using namespace std;
int main()
{_
string s;
stringstream ss;
string temp;
vector vec;
while(getline(cin,s))
{
vec.clear();
ss.str("");
ss.clear();
ss<<s;
while(ss>>temp)
{
if(int(temp[0]>=48))
{
vec.push_back(int(temp[0]-48));
}
else if(int(temp[0])==43)
{
vec.at(vec.size()-2)+=vec.at(vec.size()-1);
vec.pop_back();
}
else if(int(temp[0])==45)
{
vec.at(vec.size()-2)-=vec.at(vec.size()-1);
vec.pop_back();
}
else if(int(temp[0])==42)
{
vec.at(vec.size()-2)*=vec.at(vec.size()-1);
vec.pop_back();
}
else if(int(temp[0])==47)
{
vec.at(vec.size()-2)/=vec.at(vec.size()-1);
vec.pop_back();
}
}
cout<<vec[0]<<" ";
cout<<endl;
}
}
測試可以,但顯示溢位或除以0的錯誤
哈囉 圓胖~
密我 我給你Ans~