HDU 1237簡單計算器

2021-08-09 07:37:29 字數 853 閱讀 9739

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 對每個測試用例...