hdu——1237簡單計算器
分析:模擬題,現將一行的字元讀入,當遇見數字就放入數子棧,遇見加減放入字元棧,
遇見乘除,將最頂端的數字串和下乙個數字進行計算再放入數字棧 _最後將棧裡面的元素倒置,進行加減運算,emmm估計佇列也可以用的
用stack和對字串的處理
給的資料也好,每個數字和字元中間都是用空格分開,好判斷emmm~
#include
#include
#include
#include
#include
#include
using
namespace
std;
int main()
if(s[i]=='*')
num.push(x*y);
else
num.push(x/y);
i=j;
}//對於乘除直接計算
else
if(s[i]=='+'||s[i]=='-')
sym.push(s[i]);
else
i=j;
num.push(ans); }}
//倒序
stack
dsym;
stack
dnum;
while(!sym.empty())
while(!num.empty())
//進行加減計算
while(!dnum.empty()&&!dsym.empty())
printf("%.2lf\n",dnum.top());
}return
0;}
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 對每個測試用例...