9101 字尾表示式計算

2021-09-02 01:14:19 字數 875 閱讀 3330

規則如下:式中不包含括號,運算子放在兩個運算元的後面,所有的計算按運算子出現的順序,嚴格從左向右進行,不再考慮運算子的優先順序,如:(2 + 1) * 3,在此處即表示為2 1 + 3 *

請程式設計,計算字尾表示式的值。

輸入資料有多組,每組資料佔一行,代表乙個字尾表示式,每行不超過50個字元;

每行由多個元素(運算元,運算子,終結符)組成,每兩個元素之間有乙個空格;

字尾表示式當中:

運算元:是一整數字串,長度不超過5;

運算子範圍:+,-,*,/

終結符:#,該符號代表表示式的終結;

假設沒有不規範的字尾表示式。

每組輸出資料佔一行,輸出字尾表示式的計算結果。

2 1 + 3 * #

2 10 3 * + #

7 2 6 9 * + / #

9

320.125

運算元字串轉換為數值儲存時,應定義為double型別;

注意計算結果的輸出格式。

hdf

zh輸入資料怎麼避開數之間的空格,輸入的時候,

而且多資料輸入

scanf("%[^\n]",a);

#include#include#includeint main()

else if(a[i]=='+')

else if(a[i]=='-')

else if(a[i]=='*')

else if(a[i]=='/')

else if(a[i]=='#')

printf("%.lf\n",b[0]);

return 0;

}

字尾表示式計算

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

字尾表示式計算

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

字尾表示式計算

字尾表示式這樣一種型別的表示式,運算元在前,操作符在後。例如這樣的一位數字尾表示式 32 5 4 對等的四則表示式為 3 2 5 4。試編寫程式,求解乙個一位數的字尾表示式計算,表示式支援 操作,其中 為整除。輸入 表示式輸出 計算值樣例輸入 32 5 4 樣例輸出 21提示 可使用棧 解題關鍵 1...