evalpost.c

来自「《数据结构》教材源程序,可以让你轻松的根据教材学习数据结构」· C语言 代码 · 共 42 行

C
42
字号
 /****************************************************/
 /*            求一个后缀表达式的值                  */
 /*       文件名evalpost.c, 函数名evalpost()        */
 /****************************************************/
 double evalpost(char f[])
 { double obst[100]; /*操作数栈*/
   int top=0;
   int i=0;
   double x1,x2;
   while (f[i]!='#')
       { if (f[i]>='0' && f[i]<='9')
	   { obst[top]=readnumber(f,&i);top++;}
	    else if (f[i]==' ')  i++;
	      else if (f[i]=='+')
		    { x2=obst[--top];
		      x1=obst[--top];
		      obst[top]=x1+x2;top++;
		      i++;
                    }
              else if (f[i]=='-')
		    {
		      x2=obst[--top];
		      x1=obst[--top];
		      obst[top]=x1-x2;top++;
                      i++;
                    }
              else if (f[i]=='*')
		    { x2=obst[--top];
		      x1=obst[--top];
		      obst[top]=x1*x2;top++;
		      i++;
                    }
              else if (f[i]=='/')
		    { x2=obst[--top];
		      x1=obst[--top];
		      obst[top]=x1/x2;top++;
		      i++;
                    }
	      }
    return obst[0];
  }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?