zoukankan      html  css  js  c++  java
  • 一个简单的后最表达式计算

    题目参考:信息学奥赛一本通398-1.2

    #include<iostream>
    #include<string>
    #include<cstring>
    using namespace std;
    int main(void) {
        
        string a;
        
        a="16 9 4 3 +*-@";
        
        //cin >> a;
        int len=a.length(),p1=0,p2=0,b[100],k=0;
        memset(b,0,sizeof(b));
        for(int i=0;  a[p2+1]>=48&&a[p2+1]<=57  ||  a[p2+1]==32; i++) {
            p2++;
            if(a[p2]==' ') {
                k++;
                for(int j=p1;j<=p2-1;j++) 
                {
                    b[k]=b[k]*10+a[j]-48;
                }
                p1=p2+1;
            }
        }
        for(int i=0;i<=k;i++) cout << "b["<<i<<"]="<<b[i]<<"  ";
        cout << endl;
        int p=k;
        for(int i=p2+1;i<len;i++) {
        cout << a[i]<<endl;
            switch(a[i]) {
                
                case '+':
                    b[p-1]=b[p]+b[p-1];
                    p--;
                    break;
                case '-':
                    b[p-1]=b[p-1]-b[p];
                    p--;
                    break;
                case '*':
                    b[p-1]=b[p]*b[p-1];
                    p--;
                    break;
                case '/':
                    b[p-1]=b[p]/b[p-1];
                    p--;
                    break;
                
            }
            cout << "b["<<p<<"]="<<b[p]<<endl;
        }
        cout<<"ans = " << b[p]<<endl;
        return 0;
    }
  • 相关阅读:
    Java异常简介
    Java中的接口
    Java中的抽象类
    Java的多态
    关于this
    面向对象的继承方式详解
    1像素边框问题
    HTML5之本地存储SessionStorage
    js数组去重的4个方法
    前端模块化
  • 原文地址:https://www.cnblogs.com/zuimeiyujianni/p/9737689.html
Copyright © 2011-2022 走看看