讀入乙個只包含 +, -, *, / 的非負整數計算表示式,計算該表示式的值。
測試輸入包含若干測試用例,每個測試用例佔一行,每行不超過200個字元,整數和運算子之間用乙個空格分隔。沒有非法表示式。當一行中只有0時輸入結束,相應的結果不要輸出。
對每個測試用例輸出1行,即該表示式的值,精確到小數點後2位。
30/90
-26+97
-5-6
-13/88
*6+51
/29+79
*87+57
*920
12178.21
思路:先將輸入的字串做去空格處理,然後將其轉換為字尾表示式,最後計算這個表示式即可。
#include
#include
#include
#include
#include
#include
#include
using
namespace std;
struct node
;string str;
//輸入的字串
stack s;
//定義乙個棧,用於處理操作符以及後續做計算處理
queue q;
//定義乙個佇列,用於存放字尾表示式
map<
char
,int
> mp;
//操作符的優先順序
void
change()
else
temp.op=str[i++];
s.push
(temp)
;//把操作符入棧}}
while
(!s.
empty()
)}double
cal()}
return s.
top(
).num;
//此時棧中只有唯一的元素,該元素即是計算後的結果
}int
main()
while
(!s.
empty()
) s.
pop();
//初始化棧
change()
;printf
("%.2lf\n"
,cal()
);}return0;
}
Codeup 605 問題 A 簡單計算器
讀入乙個只包含 的非負整數計算表示式,計算該表示式的值。測試輸入包含若干測試用例,每個測試用例佔一行,每行不超過200個字元,整數和運算子之間用乙個空格分隔。沒有非法表示式。當一行中只有0時輸入結束,相應的結果不要輸出。對每個測試用例輸出1行,即該表示式的值,精確到小數點後2位。30 90 26 9...
codeup 模擬加減乘除 問題 A 簡單計算器
題目描述 讀入乙個只包含 的非負整數計算表示式,計算該表示式的值。輸入 測試輸入包含若干測試用例,每個測試用例佔一行,每行不超過200個字元,整數和運算子之間用乙個空格分隔。沒有非法表示式。當一行中只有0時輸入結束,相應的結果不要輸出。輸出 對每個測試用例輸出1行,即該表示式的值,精確到小數點後2位...
codeup1918簡單計算器
讀入乙個只包含 的非負整數計算表示式,計算該表示式的值。測試輸入包含若干測試用例,每個測試用例佔一行,每行不超過200個字元,整數和運算子之間用乙個空格分隔。沒有非法表示式。當一行中只有0時輸入結束,相應的結果不要輸出。對每個測試用例輸出1行,即該表示式的值,精確到小數點後2位。30 90 26 9...