簡易計算器 棧佇列的應用

2021-10-08 08:02:19 字數 1312 閱讀 6476

題目描述

讀入乙個只包含 +, -, *, / 的非負整數計算表示式,計算該表示式的值。

輸入

測試輸入包含若干測試用例,每個測試用例佔一行,每行不超過200個字元,整數和運算子之間用乙個空格分隔。沒有非法表示式。當一行中只有0時輸入結束,相應的結果不要輸出。

輸出

對每個測試用例輸出1行,即該表示式的值,精確到小數點後2位。

樣例輸入

30 / 90 - 26 + 97 - 5 - 6 - 13 / 88 * 6 + 51 / 29 + 79 * 87 + 57 * 92

0

樣例輸出

12178.21

#include

#include

#include

#include

#include

#include

using

namespace std;

//計算字尾表示式

struct node

;string str;

stack s;

//操作符棧

queue q;

//字尾表示式序列

map<

char

,int

> op;

//用於標記符號優先順序

void

change()

//中綴表示式轉字尾表示式

q.push

(temp);}

else

temp.op = str[i]

; s.

push

(temp)

;//把操作符壓棧

i++;}

}while

(!s.

empty()

)}double

cal(

)//計算字尾表示式

}return s.

top(

).num;

}int

main()

while

(!s.

empty()

) s.

pop();

//初始化棧

change()

;printf

("%.2f\n"

,cal()

);}return0;

}

棧 簡易計算器

題目描述 讀入乙個只包含 的非負整數計算表示式,計算該表示式的值。輸入 測試輸入包含若干測試用例,每個測試用例佔一行,每行不超過200個字元,整數和運算子之間用乙個空格分隔。沒有非法表示式。當一行中只有0時輸入結束,相應的結果不要輸出。輸出 對每個測試用例輸出1行,即該表示式的值,精確到小數點後2位...

簡易計算器 棧應用 尾遞迴

模擬簡單計算器 public class calsuffix public int docalc else result num1 num2 break default result 0 break end switch stack.push result end else end for resu...

棧實現簡易計算器

計算數學表示式的值。輸入數學表示式,輸出表示式的計算結果。數學表示式由單個數字和運算子 構成,例如 2 3 4 5 6 4。include include include include using namespace std double result int tag template class...