九度OJ 1101 計算表示式

2021-07-16 06:45:52 字數 790 閱讀 6072

題目描述:對於乙個不存在括號的表示式進行計算

輸入:存在多種資料,每組資料一行,表示式不存在空格

輸出:輸出結果

樣例輸入:

6/2+3+3*4

樣例輸出:18

這道題給的條件明顯不足。有以下不足:沒有交代運算子種類;運算元什麼型別也沒說;正負數也沒交代。。

但我還是硬著頭皮做了。還是用棧來做。

數字棧、操作符棧。注意這裡運算元有多位,所以在出現數字時,要看後面的是不是還是數字,直到後面是操作符為止。

#include #include using namespace std;

stack s_data;

stack s_signal;

int priority(char c)

return pr;

}void execution()

int main()

s_data.push(num);

i = j - 1;

}else

elsewhile(priority(str[i]) <= priority(s_signal.top()));

s_signal.push(str[i]);}}

} while(s_signal.top()!='#')

result = s_data.top();

s_data.pop();

cout<

九度OJ 1101 計算表示式

題目描述 對於乙個不存在括號的表示式進行計算 輸入 存在多種資料,每組資料一行,表示式不存在空格 輸出 輸出結果 樣例輸入 6 2 3 3 4 樣例輸出 18這個題目一行輸入可能有多個表示式 方法1 include include using namespace std char str 220 儲...

九度1101 計算表示式

題目描述 對於乙個不存在括號的表示式進行計算 輸入 存在多種資料,每組資料一行,表示式不存在空格 輸出 輸出結果 樣例輸入 6 2 3 3 4 樣例輸出 18 過不去。一直wawawawawawawa include include include include include include i...

九度 1101 字串處理 計算表示式

根據我的通過來看,首先這道題裡面沒有小數,如果存在除不盡的情況,也是按取整來算。本題建立了兩個棧,乙個儲存數字的數字棧,乙個儲存加減乘除的符號棧。在處理字串的時候,每次找到乙個數字時,放進乙個string的臨時變數裡,因為會存在十位以上的情況 每次找到乙個符號時,首先將string變數轉int放入數...