求助
查看原帖
求助
1053196
soul2024楼主2023/8/25 21:42
#include<iostream>
#include<cmath>
#include<string>
#include<stack>
using namespace std;
int main(){
	string s;
	cin>>s;
	double b=0;
	int c,d;
	stack<double>a;
	for(int i=0;i<s.length();i++){
		if(s[i]=='@')break;
		else if(s[i]>='0'&&s[i]<='9')b=b*10+(s[i]-'0');
		else if(s[i]=='.'){a.push(b),b=0;}
		else if(s[i]=='+'){
			c=a.top();
			a.pop();
			d=a.top();
			a.pop();
			a.push(c+d);
		}
		else if(s[i]=='-'){
			c=a.top();
			a.pop();
			d=a.top();
			a.pop();
			a.push(abs(d-c));
		}
		else if(s[i]=='/'){
			c=a.top();
			a.pop();
			d=a.top();
			a.pop();
			a.push(c/d);
		}
		else if(s[i]=='*'){
			c=a.top();
			a.pop();
			d=a.top();
			a.pop();
			a.push(c*b);
		}
		else if(s[i]=='%'){
			c=a.top();
			a.pop();
			d=a.top();
			a.pop();
			a.push(c%d);
		}
	}
	cout<<a.top();
	return 0;
}

样例没过

2023/8/25 21:42
加载中...