字尾表示式計算

2021-08-19 21:02:34 字數 962 閱讀 8163

字尾表示式這樣一種型別的表示式,運算元在前,操作符在後。例如這樣的一位數字尾表示式:

32+5*4-

對等的四則表示式為:(3+2)*5-4。

試編寫程式,求解乙個一位數的字尾表示式計算,表示式支援+,-,*,/操作,其中/為整除。

輸入

表示式輸出

計算值樣例輸入

32+5*4-

樣例輸出

21提示

可使用棧

解題關鍵:

1.理解字尾表示式如何計算

2.當輸入的是數字直接入棧

3.當輸入運算子時,直接出棧第乙個和第二個運算數並且將計算結果入棧

4.注意字元與數字之間的轉換(因為輸入的是字串)

c++**如下:

#include

#include

using namespace std;

int computer(int a,char op,int b)//op代表運算子 a,

b為運算元

int main()

else

}

cout}

字尾表示式計算

演算法 1.遍歷字尾表示式中的數字和符號 對於數字 進棧 對於符號 從棧中彈出右運算元 從棧中彈出左運算元 根據符號進行運算 將運算結果壓入棧中 2.遍歷結束 棧中的唯一數字為計算結果 include include linkstack.h int isnumber char c int isope...

字尾表示式計算

將中綴表示式轉換為字尾表示式 與轉換為字首表示式相似,遵循以下步驟 1 初始化兩個棧 運算子棧s1和儲存中間結果的棧s2 2 從左至右掃瞄中綴表示式 3 遇到運算元時,將其壓入s2 4 遇到運算子時,比較其與s1棧頂運算子的優先順序 4 1 如果s1為空,或棧頂運算子為左括號 則直接將此運算子入棧 ...

計算字尾表示式

一 通過棧把中綴表示式轉換為字尾表示式的步驟 從左至右掃瞄中綴表示式,if 遇到數字 else if 遇到 else if 遇到 else if 遇到運算子op elseelseelse if 遇到操作符op 1 型別標記 enum設定預設值10,20是為了區分 負號 使得相差較大,便於區別 sta...