簡單計算器 HDU 1237 (模擬)

2021-10-09 06:32:18 字數 1076 閱讀 9058

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

input

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

output

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

sample input

1 + 2

4 + 2 * 5 - 7 / 11

0

sample output

3.00

13.36

這道題的題目很簡單,但是,也曾困擾我很久,一直不太清楚計算之後應該如何進行操作,還有要不要使用容器之類的,之後看了別人的**才理解;

首先輸入就很迷惑,本題的結束標誌是結尾輸入0,就意味著結束了,但是也有可能0是計算式中的一部分,所以真正判斷是否結束的標誌是是否在輸入0的時候,後面還輸入了『\n』。所以輸入的時候就有些不一樣;

其次;這個演算法是將乘除輸入的時候就開始計算,得到的結果存進去,加減輸入的時候就存入進去,最後進行統一的計算;

**如下;

//簡單計算器

#include#include#include#includeusing namespace std;

int main()

else

b=getchar();

if(b=='\n')

break;

}for(int i=1;i<=k;i++)

printf("%.2lf\n",ans);

} return 0;

}

HDU 1237 簡單計算器(模擬)

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

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...