題目描述
讀入乙個只包含 +, -, *, / 的非負整數計算表示式,計算該表示式的值。輸入
測試輸入包含若干測試用例,每個測試用例佔一行,每行不超過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...