#include #include #include #include #define maxzhansize 30
char stack[maxzhansize];//
char deleted(int *top);
void add(int *top,char item);
//逆波蘭數計算
#define element int
#define ni_maxzhansize 20
/+ - * / % out 數字
typedef enumprece;
int ni_stack[ni_maxzhansize];
void nisuanadd(int *top,element item);
element nisuandeleted(int *p);
int eval();
prece gettoken(char*symbol,int *n);
char c[30];結果字元
void main()
if(b[i] == ')' )//處理一對括號
deleted(&top);//除掉乙個'('
continue;
}if(a[ b[i] ] > a[ stack[top] ])
當前的符號優先順序大於棧頂的符號是放入,,否則彈出棧頂..........
else
add( &top, b[i] );//把當前的符號加進去
continue;}}
else是數字符號時
}while(top !=0 )/棧裡剩餘的符號輸出
c[j++]=' ';//這個空位用於終止
c[j++]='\0';補上空字元
printf(" ");
puts(c);
printf("\n%d",eval());
}void add(int *top,char item)
stack[++*top]=item;
}char deleted(int *top)
return stack[(*top)--];
}/逆波蘭數計算
int eval()
} token=gettoken(&symbol,&n);//下乙個
} return nisuandeleted(&top);
}prece gettoken(char*symbol,int *n)
}void nisuanadd(int *top,int item)
ni_stack[++*top]=item;
}int nisuandeleted(int *top)
return ni_stack[(*top)--];
}//
算術表示式
引用標頭檔案 include include include using namespace std typedef int elemtype const int stack init size 100 儲存空間的初始化分配量 const int stackincrement 10 儲存空間分配增量...
棧 算術表示式
將乙個算術表示式 即中綴形式 轉化成其字尾形式,並算出答案。include include include include include include using namespace std using namespace std bool isoperator char ch return f...
解析算術表示式
現有字串形式的算術表示式,求計算其值。string str1 2000 600 3 300 2 string str2 2000 600.389895334 2 300 2 6 100 求解方法如下 讀取公式,返回結果。param express 算術公式 return 結果字串 保留兩位小數 pu...