九度OJ 題目1019 簡單計算器

2021-06-25 13:17:38 字數 1179 閱讀 9561

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

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

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

樣例輸入:

1 + 2

4 + 2 * 5 - 7 / 11

0

樣例輸出:

3.00

13.36

分析:題目難度:中等

解決方案:符號棧

難點:符號級別

c++**如下:

#include #include #include #include using namespace std;

#define max_len 501

stacknum_stack;

stacksign_stack;

char cs[max_len] ;

int num_arr[max_len]; int n;

int sign_arr[max_len]; int m;

//判斷符號

int isop(char c)

//比較符號級別

int cmp(char o1,char o2)

//單步運算

double op(char o,double a,double b)

//主要函式計算表示式的結果

double getres()

if(i>=0)

if(j>=0)else break;

}sign_stack.push(sign_arr[j--]);}}

res = num_stack.top() ;num_stack.pop();

return res ;

}//表示式轉化為兩個陣列

void cs2arr()

else if(cs[i]==' ')continue ;

else

}}int main()

return 0;

}

九度OJ 題目1019 簡單計算器

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

九度 題目1019 簡單計算器

時間限制 1 秒 記憶體限制 32 兆 特殊判題 否 提交 8387 解決 3065 題目描述 讀入乙個只包含 的非負整數計算表示式,計算該表示式的值。輸入 測試輸入包含若干測試用例,每個測試用例佔一行,每行不超過200個字元,整數和運算子之間用乙個空格分隔。沒有非法表示式。當一行中只有0時輸入結束...

九度OJ 1019 簡單計算器

include include include include include include include using namespace std 九度 1019 簡單計算器 10 9 2014 liu 1 將中綴表示式轉換成字首表示式或者是字尾表示式 mapmapoperator int ge...