簡單計算器

2022-01-30 07:40:03 字數 904 閱讀 7523

前言:一道典型的stack(棧)的應用題,思路簡單,但是比較考驗編碼能力(有很多編碼細節,一不注意,你就沒了qaq)

ps:杭電也有這樣的題,長得幾乎一模一樣,但是不知道為什麼杭電上ac的**codeup上這道題就是過不了,大霧???(stack做出後,在看其他解法的時候發現的)

題目簡述:

計算表示式中只含有+、-、×、/,計算給出的表示式的值,保留小數點後兩位輸出。

輸入中含有數字、空格、計算符、回車。

當一行輸入中只含0時,輸入結束。

解題思路:

遇到這種表示式求值的題,一般就是將中綴表示式轉換為字尾表示式,然後用兩個stack分別儲存運算子和數字,根據計算符的優先順序進行彈出運算。

注意:大多數題目中還是會涉及到括號的情況,只不過這道題難度降了(我依舊編了很久很久)。如果有括號,則還要判斷括號的優先順序

**code:

#include using namespace std;

stackop; //存運算子

stacknum; //存數字

char s[10001];

inline int check(char ops)

int main()

}else if(op.empty()||check(s[i])>check(op.top()))

else

} printf("%.2lf\n",num.top());

} return 0;

}

後序:

網上很多人是用兩個queue或者乙個queue+stack做的,在此就不多贅述了。

提供乙個用兩個queue做的題解,宣傳一下qwq:

簡單計算器

unit unit1 inte ce uses windows,messages,sysutils,variants,classes,graphics,controls,forms,dialogs,stdctrls,buttons,math math是數 算單元 type tform1 class ...

簡單計算器

a 簡單計算器 crawling in process.crawling failed time limit 1000msmemory limit 32768kb64bit io format i64d i64u submit status description 讀入乙個只包含 的非負整數計算表示...

簡單計算器

問題描述 乙個最簡單的計算器,支援 四種運算。僅需考慮輸入輸出為整數的情況,資料和運算結果不會超過int表示的範圍。輸入 輸入只有一行,共有三個引數,其中第1 2個引數為整數,第3個引數為操作符 輸出 輸出只有一行,乙個整數,為運算結果。然而 1.如果出現除數為0的情況,則輸出 divided by...