• 二、实现算数加减


    #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

    运行测试如下:

  • 相关阅读:
    Shell脚本编程基础之程序
    从入门到放弃
    Shell编写的俄罗斯方块游戏(亲测可用)
    Qt开发环境搭建
    day01
    day01
    浅析STM32内部FLASH读写
    基于STM32 的485通讯实验(f103)
    八、Servlet的常见错误总结:
    七、Servlet介绍
  • 原文地址:https://www.cnblogs.com/godoforange/p/10999164.html
Copyright © 2020-2023  润新知