zoukankan      html  css  js  c++  java
  • 二、实现算数加减

    #include <iostream>
    #include <cstring>
    #include <cstdlib>
    using namespace std;
    int factor_value();
    int term_value();
    int expression_value();
    int main(){
        cout<<expression_value();
        return 0;
    }
    int expression_value(){
        int result = term_value();
        bool more = true;
        while(more){
            char op = cin.peek();
            if(op=='+'||op=='-'){
                cin.get();
                int value = term_value();
                if(op=='+') result += value;
                else result -=value;
            } else more=false;
        }
        return result;
    }
    int term_value(){
        int result = factor_value();
        while(true){
            char op = cin.peek();
            if(op=='*'||op=='/'){
                cin.get();
                int value = factor_value();
                if(op=='*')
                    result *= value;
                else result /=value;
            } else break;
        }
        return result;
    }
    int factor_value(){
        int result = 0;
        char c = cin.peek();
        if(c=='('){
            cin.get();
            result = expression_value();
            cin.get();
        } else{
            while(isdigit(c)){
                result = 10*result+c-'0';
                cin.get();
                c= cin.peek();
            }
        }
        return  result;
    }

    编译环境g++4.9

    运行测试如下:

  • 相关阅读:
    java中Calendar类里面的月份是月份数减一。
    hdu oj
    存在重复元素
    杨辉三角
    删除链表的倒数第n个结点
    相交链表
    环形链表 II
    环形链表
    至少是其他数字两倍的最大数
    寻找数组的中心索引
  • 原文地址:https://www.cnblogs.com/godoforange/p/10999164.html
Copyright © 2011-2022 走看看