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