求助,关于波兰表达式,悬赏一个关注
  • 板块题目总版
  • 楼主_Niaoniao_
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/7/24 20:24
  • 上次更新2023/10/27 18:35:33
查看原帖
求助,关于波兰表达式,悬赏一个关注
528562
_Niaoniao_楼主2022/7/24 20:24
#include<bits/stdc++.h>
using namespace std;
char st[201][41],ax[201];
double f(int now){
	if(ax[now]=='0'){
		return atof(st[now]);
	}else{
		switch(ax[now]){
			case '+':{
				return f(now+1)+f(now+2);
				break;
			}
			case '-':{
				return f(now+1)-f(now+2);
				break;
			}
			case '*':{
				return f(now+1)*f(now+2);
				break;
			}
			case '/':{
				return f(now+1)/f(now+2);
				break;
			}
		}
	}
}
int c,r;
int main(){
	int top=0;
	while(c+1!=r){
		top++;
		cin>>st[top];
		if(st[top][0]>='0'&&st[top][0]<='9'){
			r++;
			ax[top]='0';
		}else{
			ax[top]=st[top][0];
			c++;
		}
	}
	printf("%f\n", f);
	return 0;
}
2022/7/24 20:24
加载中...