試題描述
字尾表示式是指運算子放在兩個運算物件之後,所有計算按運算子出現的順序,嚴格地從左到右進行。注意每個運算元之後都緊跟著乙個「.」。
如:3×(5-2)+7對應的字尾表示式為3.5.2.-*7.+。
輸入乙個字尾表示式,求表示式的值。
注意本題中只出現+、-、*三種運算子。
輸入一行,乙個字尾表示式。
輸出一行,乙個整數,表示字尾表示式的值。
輸入示例
3.5.2.-*7.+
輸出示例
16其他說明
表示式長度不超過50,所有運算元的值以及所有中間運算結果以及最終結果的絕對值均不超過10^6。
c程式:
#include#include#include
#include
using
namespace
std;
int st[51
];int
top;
void push(int ch)
void pop()
void clear()
intmain()
else
if(s[i]=='+'
)
else
if(s[i]=='-'
)
else
if(s[i]=='*'
)
else ch=ch*10+(s[i]-'0'
); }
printf("%d
",st[top]);
return0;
}
計算表示式值(字尾表示式) 棧
處理表示式主要是對優先順序以及括號的判斷 1.運算子棧頂的優先順序小於加入的時,需要將所有的不評級的取出並計算,2.當遇到 時,需要括號內的運算全部處理 2.其他情況全部加入運算子棧和資料棧 include include include using namespace std typedef lo...
計算該表示式值
問題描述 輸入乙個只包含個位數字的簡單四則運算表示式字串,計算該表示式的值注 1 表示式只含 四則運算符,不含括號 2 表示式數值只包含個位整數 0 9 且不會出現0作為除數的情況 3 要考慮加減乘除按通常四則運算規定的計算優先順序 4 除法用整數除法,即僅保留除法運算結果的整數部分。比如8 3 2...
stack計算表示式的值
9.52 使用stack物件處理帶圓括號的表示式。遇到左圓括號時,將其標記下來。當你在乙個左括號之後 遇到右圓括號時,彈出stack物件中這兩邊括號之間的元素,直到遇到左括號,將左括號也一起彈出棧。接著在stack物件中壓入乙個值,用以表明這個用一對圓括號括起來的表示式已經被替換。程式如下 incl...