讀入乙個只包含 +, -, *, / 的非負整數計算表示式,計算該表示式的值。
input
測試輸入包含若干測試用例,每個測試用例佔一行,每行不超過200個字元,整數和運算子之間用乙個空格分隔。沒有非法表示式。當一行中只有0時輸入結束,相應的結果不要輸出。
output
對每個測試用例輸出1行,即該表示式的值,精確到小數點後2位。
sample input
1 + 2
4 + 2 * 5 - 7 / 11
0sample output
3.00
13.36
模擬乘除加減的簡單問題,用stack記錄乘除加減符號,在乙個個帶入,很水的題目,注意double精度問題,但是我還是debug了半天,主要是輸出問題
cout << fixed <<
setprecision(2
)<< si.
top(
)<< endl;
//wa
printf
("%.2lf\n"
,si.
top())
;//ac
這兩個東西是**有區別的???哭。。。太菜了我
呃呃呃,這個**不重要的,都沒精簡過。。。
string s;
stacksi;
stacksc;
int main()
else
break;}
si.push
(a);
i = j;
}else
if(s[i]
!=' '
)else
break;}
si.push
(a *
1.000
* b )
; i = j;
}else
if(s[i]
=='/'
)else
break;}
si.push
(b*1.000
/ a)
; i = j;
}else
if(s[i]
=='-'
)else
break;}
si.push
(-a)
; i = j;
sc.push
('+');
}else sc.
push
(s[i]);
}}while
(!sc.
empty()
)printf
("%.2lf\n"
,si.
top())
; si.
pop();
}return0;
}
hdu1237 簡單計算器
模擬棧運算,其實遞迴也可以,不過我夠嗆能寫的出來 其實老早就看過表示式求值的問題,只不過一直沒有敲過,今天敲了一下,發現還是有不少問題的 code include include include using namespace std bool check char,char void solve ...
hdu 1237 簡單計算器
模擬棧。設兩個陣列,乙個裝運算元,乙個裝操作符。根據優先順序,先乘除,後加減。include include include include char s 210 op 200 s1 200 double a 200 int char num char s1,int n 字串轉化成int型數 ret...
HDU1237 簡單計算器
problem description 讀入乙個只包含 的非負整數計算表示式,計算該表示式的值。input 測試輸入包含若干測試用例,每個測試用例佔一行,每行不超過200個字元,整數和運算子之間用乙個空格分隔。沒有非法表示式。當一行中只有0時輸入結束,相應的結果不要輸出。output 對每個測試用例...