黄豆豆和金星谁厉害:给出后缀表达式求值程序double rpn_calculator(std::iostream& in)它从输入流in上读入后缀表达式,返回表达式的结果。假设输入流in上只包括+,-,*,/以及实数。

来源:百度文库 编辑:九乡新闻网 时间:2024/04/28 18:18:20

6.给出后缀表达式求值程序

double rpn_calculator(std::iostream& in)

它从输入流in上读入后缀表达式,返回表达式的结果。假设输入流in上只包括+,-,*,/以及实数。

/****************************************************************************/

/*==================================================================*/

/*****************************************************************************/

#include

using namespace std;

 

#define SIZE 10                                   //运算的数的最多个数;

 

double rpn_calculator(std::istream& in)           //题目中要求设计的函数;

{

       char ch;

       double d[SIZE];

       int b=0;

       std::cout<<"请输入后缀表达式,以#结束:"<

      

       in>>ch;

    while(ch!='#'){                                 //以#结束;

              if(ch>='0'&&ch<='9'){                       //判断是否为数字;

                     in.putback(ch);

                     in>>d[b];

                     b++;

              }

              else if(ch=='+'||ch=='-'||ch=='*'||ch=='/'){    //判断是否为运算符;

                     b--;

                     if(ch=='+'){                               //后缀运算符的运算规则;

                            d[b-1]=d[b-1]+d[b];

                     }

                     else if(ch=='-'){

                            d[b-1]=d[b-1]-d[b];

                     }

                     else if(ch=='*'){

                            d[b-1]=d[b-1]*d[b];

                     }

                     else if(ch=='/'){

                            d[b-1]=d[b-1]/d[b];

                     }    

              }

              in>>ch;

       }

       return d[b-1];        

}

 

 

int main()

{

       double result=rpn_calculator(std::cin);          //题中函数的运用;

       std::cout<

       return 0;

}

 

(1)式子3-4/(5*(6+7))的两种实现:

(2)式子4/2*3-(6+4)的实现:

 

/****************************************************************************/

/*==================================================================*/

/***************************************