hello.cpp

来自「表达式算法,console程序」· C++ 代码 · 共 57 行

CPP
57
字号
#include <iostream>
#include "fickyou.h"
using namespace std;
int isp(char t1){
	switch(t1){
	case '#':return 0;
	case '(':return 1;
	case '*':case '/':return 5;
	case '+':case '-':return 3;
	case ')':return 8;
default: return 0;
	}
}
int icp(char t2){
    switch(t2){
	case '#':return 0;
	case '(':return 8;
	case '*':case '/':return 4;
	case '+':case '-':return 2;
	case ')':return 1;
	default:return -1;
	}
}
void main()
{
	char ch,y;double re;
   Stack<char>  operators;
   calculator operands;
   //operators.MakeEmpty();
   operators.Add('#');
   while(cin.get(ch),ch!='\n'){
	   if(isdigit(ch)){
	     cin.putback(ch);
		 cin>>re;
		 operands.AddOperand(re);
	   }
	   else if(ch==')'){
	     for(operators.Pop(y);y!='(';operators.Pop(y))
			 operands.DoOperator(y);
	   }
	   else{
	     for(operators.Pop(y);isp(y)>icp(ch);operators.Pop(y))
			 operands.DoOperator(y);
		 operators.Add(y);
		 operators.Add(ch);
	   }

   }
  operators.Pop(y);
   while(y!='#'){
    
	operands.DoOperator(y);operators.Pop(y);
   }
   operands.s.Pop(re);
   cout<<re;
}

⌨️ 快捷键说明

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