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