帮忙看看有什么问题?
查看原帖
帮忙看看有什么问题?
493169
秦冇甪饕楼主2022/10/4 10:29
#include <bits/stdc++.h>
#include <string>
using namespace std;
int top=0,b[10001]={};
string a;
void push(int t)
{
	b[++top]=t;
}
void pop()
{
	top--;
}
bool empty()
{
	return top==0?1:0;
}
int get_top()
{
	return b[top];
}
int main()
{
	getline(cin,a);
	int m,n;
	for(int i=0;i<a.size();i++)
	{
		if(a[i]=='+'||a[i]=='-'||a[i]=='*'||a[i]=='/')
		{
			m=get_top();
			pop();
			n=get_top();
			pop();
			if(a[i]=='+') push(m+n);
			else if(a[i]=='-') push(n-m);
			else if(a[i]=='*') push(m*n);
			else if(a[i]=='/') push(n/m);
		}
		else if(a[i]=='.') 
		{
			continue;
		}
		else 
		{
			int sum=0;
			while(a[i]>='0'&&a[i]<='9')
			{
				sum=sum*10+a[i++]-'0';
			}
			push(sum);
		}
	}
	cout<<get_top();
	return 0;
}

因为老师上课讲过,所以直接挪过来...

2022/10/4 10:29
加载中...