棧實現簡易計算器

2021-09-29 02:23:00 字數 1699 閱讀 5047

計算數學表示式的值。 輸入數學表示式,輸出表示式的計算結果。數學表示式由單個數字和運算子+、-、、/、(、)構成,

例如 2+3(4+5)–6/4。

#include

#include

#include

#include

using

namespace std;

double result;

int tag;

template

<

class

t>

class

arraystack

bool

empty()

const

intsize()

const

t&top(

)void

pop(

)// t的析構

void

push

(const t& theelement)

private

:int stacktop;

// 當前棧頂

int arraylength;

// 棧容量

t *stack;

// 元素陣列

};

template

<

class

t>

//建構函式

arraystack

::arraystack()

arraystack<

double

> num;

//數字

arraystack<

char

> sign;

//運算子

intpriority

(char a)

bool

judge

(char e)

//判斷是運算子還是數字

return judge;

}void

pop_caculate()

void

caculate

(string expr)

//計算函式

num.

push

(n);

i++; tag=1;

}else

else

if(expr[i]

=='('

)else

if(expr[i]

==')'

) sign.

pop();

if(sign.

top()==

'-')

}elseif(

priority

(expr[i]

)<=

priority

(sign.

top())

)else sign.

push

(expr[i]);

++i;}}

while

(!sign.

empty()

) result=num.

top();

//cout("%.2f"

,result)

; cout<}

int

main()

}

棧 簡易計算器

題目描述 讀入乙個只包含 的非負整數計算表示式,計算該表示式的值。輸入 測試輸入包含若干測試用例,每個測試用例佔一行,每行不超過200個字元,整數和運算子之間用乙個空格分隔。沒有非法表示式。當一行中只有0時輸入結束,相應的結果不要輸出。輸出 對每個測試用例輸出1行,即該表示式的值,精確到小數點後2位...

利用棧實現簡易計算器

輸入數學表示式,輸出結果。其中符號支援加減乘除 乘方及括號,數字支援小數及負數。開兩個陣列,乙個陣列為符號棧,乙個陣列為數字棧。字串讀入表示式並逐位處理,有數字就擷取下來存入數字棧,運算符號截下來存入符號棧,若發現當前符號優先順序小於等於前乙個符號的優先順序,就要把前面那部分的值計算出來,例如3 2...

實現簡易計算器

python 剛學python 老師帶著寫了乙個計算器。話不多說直接上 from tkinter import 匯入模組 top tk 設定視窗物件 top.title 計算器 設定視窗標題 v strin ar 接受使用者輸入的字元 v.set 0 設定字元預設值 isopera false 是否...