猫史档案馆


计算后缀表达式

用户:SCS_user_EHQ0z2l6elSCS_user_EHQ0z2l6el查看:0 回复:0 评论:0 创建时间:2023-04-02T18:33:03


//后缀表达式求值
#include<iostream>
#include<cstdio>
#include<stack>
using namespace std;
stack <double> s;//栈
double popfront(){
    double a=s.top();
    s.pop();
    return a;
}
int main(){
    string x;
    while(cin>>x){
        if('0'<=x[0]&&x[0]<='9'){
            int num=stod(x);
            s.push(num);
            continue;
        }
        double a=popfront();
        double b=popfront();
        if(x[0]=='+'){
            s.push(b+a);
        }
        if(x[0]=='-'){
            s.push(b-a);
        }
        if(x[0]=='*'){
            s.push(b*a);
        }
        if(x[0]=='/'){
            s.push(b/a);
        }
    }
    printf("%.1f",popfront());
    return 0;
}


回复

上一页1 页 / 共 0下一页