c++ 實現四則運算


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

輸出:計算結果,保留兩位小數。

 

程序任務分為兩部分:

一。將輸入的中綴表達式轉換為后綴表達式,實現過程:

  1.准備隊列保存后綴表達式(計算后綴表達式時,需要從隊首讀取數據)

    准備棧保存計算符,使用找調整計算順序    

  2.讀輸入字符串,如果是數字,直接入后綴表達式隊列;

    如果是計算符號,當計算符號棧為空或當前符號優先級大於棧頂符號優先級,直接入棧。否則依次彈出棧頂符號入后綴表達式隊列,直到遇到優先級不小於當前的符號或棧空。

    如果是(直接入棧,如果是)彈出符號棧中符號入后綴表達式隊列,直到((不入隊)

  3.反復2過程直到讀完所有字符串,若符號棧不為空,彈出其中所有元素入隊

二。計算后綴表達式:

  計算棧

  1.彈出隊列元素,如果是數字,直接入棧,如果是操作符號,彈出棧頂兩個數字計算。

P.S.第一個彈出數字是第二個數字,第二個彈出數字是第一個數字。

    |temp1|   棧頂    temp2 - temp1  注意這一點,容易在減和除運算中出錯

    |--------|

    |temp2|

    |--------|

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM