題目描述:對於乙個不存在括號的表示式進行計算
輸入:存在多種資料,每組資料一行,表示式不存在空格
輸出:輸出結果
樣例輸入:
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放入數...