簡單計算器

2021-09-26 14:33:57 字數 1155 閱讀 2392

**1. 中綴轉字尾表示

變化過程使用運算棧g_operstack最後的結果儲存在資料佇列g_datastack,便於後面計算

為了區分運算子和數字,對所有運算子加了偏移, 所有資料為非負

**2. 求字尾

資料佇列

#include

#include

enum

;int adj =

-100

;typedef

struct tagstack stack;

stack g_datastack =};

stack g_operstack =};

void

dealoper

(int ch)

else

if(ch == smallright)

--g_operstack.cnt;

}else

if(ch == plus || ch == minus)

g_operstack.data[g_operstack.cnt++

]= ch;

}else

if(ch == multi || ch == devide)

g_operstack.data[g_operstack.cnt++

]= ch;}}

void

postgen

(char

*s)else

dealoper

(ch);}

}if(dataflag)

while

(g_operstack.cnt > zero)

}int

getresult

(int data2,

int data1,

int oper)

else

if(oper == minus)

else

if(oper == multi)

else

}int

calcproc()

else}if

(g_operstack.cnt == one)

else

}int

calculate

(char

*s)

簡單計算器

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...