輸入表示式字串,以
「=」表示結束, 計算並輸出表示式值。 運算元可以是正負整數或實數,操作符有
「+」、
「-」、
「*」、
「/」、
「^」(乘方)和
「sin( )」(正弦)、
「cos( )」(余弦)、
「log( )」(對數)、
「ln( )」(自然對數)等函式。
inttransfer(
charc)
void
push_in(
stack
<
char
> &op_s,
vector
<
string
> &res,
charc)
if(c==
')')
op_s.
pop();
return;
} if(
transfer
(c)>
transfer
(op_s.
top())||op_s.
top()==
'(')
if(transfer
(c)<=
transfer
(op_s.
top()))
op_s.
push
(c);
return;
} }
void
show(
stack
<
char
> s)
cout
<<
endl;
} string
setstring(
string
str)
else
s+=str[i];
}returns;
} vector
<
string
> calculate(
string
str)
res.
push_back
(num);
i--;
continue;
} else
if(str[
i]==
's'||str[
i]==
'c')
if(str[
i]==
'n'||str[
i]==
'g')
} }
while
(!operator_s.
empty
())
return
res; }
double
result(
vector
<
string
> &a)
else
if(n[
0]==
'-')
else
if(n[
0]==
'*')
else
if(n[
0]==
'/')
else
if(n[
0]==
'^')
else
if(n[
0]==
's')
else
if(n[
0]==
'c')
else
if(n[
0]==
'g')
else
if(n[
0]==
'n')
} }
return
atof
(s.top
().c_str
()); }
int main()
基本計算器
實現乙個基本的計算器來計算乙個簡單的字串表示式的值。字串表示式可以包含左括號 右括號 加號 減號 非負整數和空格 示例 1 示例2 示例 3 我的媽呀這個題提交了n次終於通過了。沒有想到特殊情況比如輸入是這種 33 或者 33 或者1 33 設定兩個棧,乙個資料棧儲存資料,乙個符號棧儲存符號。當符號...
基本計算器
給你乙個字串表示式 s,請你實現乙個基本計算器來計算並返回它的值。整數除法僅保留整數部分。示例 1 輸入 s 3 2 2 輸出 7示例 2 輸入 s 3 2 輸出 1示例 3 輸入 s 3 5 2 輸出 51 s.length 3 105 s 由整數和算符 組成,中間由一些空格隔開 s 表示乙個 有...
基本計算器
描述 給你乙個字串表示式s,請你實現乙個基本計算器來計算並返回它的值。注意 不允許使用任何將字串作為數學表示式計算的內建函式,比如eval 1 s.length 3 105 s 由數字 和 組成 s 表示乙個有效的表示式 不能用作一元運算 例如,1 和 2 3 無效 可以用作一元運算 即 1 和 2...