四則運算表示式求值

2021-10-03 02:55:29 字數 830 閱讀 2964

03 四則運算表示式求值

輸入輸入為四則運算表示式,僅由陣列、四則運算符、左右括號組成,不含空格。

假設運算子結果都是整數。

輸出輸出這個表示式的值

分析首先我們要搞清楚表示式的定義是什麼:

表示式:由乙個或者多個項組成,多個項的表示式由+ -連線

項:由乙個或者多個因子組成,多個因子由* \連線

因子:由(表示式)或者整數組成

我們發現,這是乙個遞迴定義的東西,自然我們也可以用遞迴函式來解決問題

**實現

#include

#include

using

namespace std;

double

expression_value()

;double

term_value()

;double

factor_value()

;double

expression_value()

}return result;

}double

term_value()

}return result;

}double

factor_value()

result =

atof

(nums.

c_str()

);}else

return result;

}int

main()

事實上本題還可以用棧的方法來解決,效率更高

四則運算表示式求值

表示式求值是關於棧的應用,涉及到中綴與字尾式的轉換,本文關於10以內不帶括號的四則運算。9 3 4 x 3 24 1 x 9 5 9 9 5 x 9 4 6 2 x 3 1 42 思路 遇到數字直接入數字棧。遇到運算子,第乙個運算子直接入符號棧,後面的需要與符號棧棧頂元素比較優先順序。若當前優先順序...

百練 四則運算表示式求值

總時間限制 1000ms 記憶體限制 65536kb 描述 求乙個可以帶括號的小學算術四則運算表示式的值 輸入一行,乙個四則運算表示式。表示乘法,表示除法 輸出一行,該表示式的值,保留小數點後面兩位 樣例輸入 輸入樣例1 3.4輸入樣例2 7 8.3 輸入樣例3 3 4.5 7 2 3 3 4 2 ...

四則運算表示式總結

這兩周完成了第乙個個人專案 四則運算表示式。在整個開發的過程中我有一些收穫也發現了自身的一些問題。下面就分條簡述一下。1 實現隨機生成任意長度的四則表示式 括號 2 實現四則表示式的計算 包括分數 3 實現接收使用者對某四則運算表示式計算的結果並判斷正確性。4 實現結合1 2 3功能的mfc應用程式...