• Polish calculation


    //cww 逆波兰计算器
    #include<stack>
    #include<cstdio>
    #include<iostream>
    using namespace std;
    stack<double>s;
    
    char read(){
        while (1){
            printf("Select command and press<Enter>:");
            char ch; cin>>ch;
            if (ch=='?'||ch=='='||ch=='+'||
                ch=='-'||ch=='*'||ch=='/'||
                ch=='q'||ch=='Q')return ch;
            puts("Please enter a valid command:");
            puts("[?]push to stack [=]print top");
            puts("[+] [-] [*] [/] you know them");
            puts("[Q]uit =======Bazinga!=======");
        }
    }
    
    bool solve(char ch){
        double x,y;
        if (ch=='q'||ch=='Q'){
            puts("Calculation finshed.");
            return 0;
        }
        if (ch=='?'){
            printf("Enter a real number:");
            cin>>x; s.push(x);
        }
        if (ch=='='){
            if (s.empty())puts("Stack empty");
            else printf("%.0lf
    ",s.top());
        }
        if (ch=='+'||ch=='-'||ch=='*'||ch=='/'){
            if (s.empty())puts("Stack empty");
            else{
                x=s.top(); s.pop();
                if (s.empty()){
                    puts("Stack has just one entry");
                    s.push(x);
                }
                else{
                    y=s.top();s.pop();
                    switch (ch){
                        case'+':s.push(x+y);break;
                        case'-':s.push(x-y);break;
                        case'*':s.push(x*y);break;
                        case'/':s.push(x/y);break;
                    }
                }
            }
        }
        return 1;
    }
    //==========cww=2016,2,28=23:27=============== 
    int main(){
        puts("welcome");
        while (!s.empty())s.pop();
        while (solve(read())){}
        return 0;
    }
  • 相关阅读:
    JS高级拖拽
    JS高级Date类
    JS高级闭包
    JS笔记整理
    JS高级解决函数内的this指向
    JS高级事件委托
    JS高级 事件对象
    JS中级面向对象
    JS中级
    JS高级
  • 原文地址:https://www.cnblogs.com/cww97/p/7534015.html
Copyright © 2020-2023  润新知