HUST Online Judge WebBoard
Problem 114514 >> c++计算器(可用+,-,*,/,(,) )
zhangwenbo @ 2024-12-02 19:04:42
[ Quote ] [ Edit ] [ Delete ] 1#
#include<bits/stdc++.h>
using namespace std;
stack<int> shu;
stack<char> fu;
string s;
void jisuan(){
int num1=shu.top();
shu.pop();
int num2=shu.top();
shu.pop();
char c=fu.top();
fu.pop();
int r;
if(c=='+'){
r=num2+num1;
}else if(c=='-'){
r=num2-num1;
}else if(c=='*'){
r=num2*num1;
}else if(c=='/'){
r=num2/num1;
}
shu.push(r);
}
int main(){
cin>>s;
int sum=0;
for(int i=0;i<s.size();i++){
if(s[i]>='0'&&s[i]<='9'){
sum=sum*10+s[i]-'0';
}else{
if(i>0&&s[i-1]>='0'&&s[i-1]<='9'){
shu.push(sum);
sum=0;
}
if(fu.empty()){
fu.push(s[i]);
}else{
if(s[i]=='('){
fu.push(s[i]);
}else if(s[i]==')'){
while(fu.top()!='('){
jisuan();
}
fu.pop();
}else if(s[i]=='*'||s[i]=='/'){
if(fu.top()=='*'||fu.top()=='/'){
jisuan();
fu.push(s[i]);
}else if(fu.top()=='+'||fu.top()=='-'||fu.top()=='('){
fu.push(s[i]);
}
}else if(s[i]=='+'||s[i]=='-'){
if(fu.top()=='('){
fu.push(s[i]);
}else{
jisuan();
fu.push(s[i]);
}
}
}
}
}
if(s[s.size()-1]>='0'&&s[s.size()-1]<='9')shu.push(sum);
while(!fu.empty())jisuan();
cout<<shu.top();
return 0;
}
zhangwenbo @ 2024-12-02 19:04:57
[ Quote ] [ Edit ] [ Delete ] 2#
给你们个例子
zhangwenbo @ 2024-12-02 19:05:13
[ Quote ] [ Edit ] [ Delete ] 3#
输入
(1+2)*3-4/2
输出
7
zhangwenbo @ 2025-07-08 16:31:00
[ Quote ] [ Edit ] [ Delete ] 4#
用过的都说好
zhangxuanzhen @ 2025-07-09 10:44:17
[ Quote ] [ Edit ] [ Delete ] 5#
(4/2+3/4)+2*(3*2)/3+(4+2)/3=8???
libowei @ 2025-07-10 15:22:15
[ Quote ] [ Edit ] [ Delete ] 6#
有没有可能这是一个题目的答案
libowei @ 2025-07-10 15:22:27
[ Quote ] [ Edit ] [ Delete ] 7#
我做过这题
zhangwenbo @ 2025-07-28 20:59:40
[ Quote ] [ Edit ] [ Delete ] 8#
@zhangxuanzhen 请您好好想想,3/4,可以整除吗?如果你想算小数,请改成float或double类型
zhangxuanzhen @ 2025-07-29 15:23:50
[ Quote ] [ Edit ] [ Delete ] 9#
哦哦
gaoyuanhang @ 2025-07-29 15:27:17
[ Quote ] [ Edit ] [ Delete ] 10#
你们给我闭嘴
gaoyuanhang @ 2025-07-29 15:27:44
[ Quote ] [ Edit ] [ Delete ] 11#
我给你们肘飞
zhangwenbo @ 2025-07-29 16:36:34
[ Quote ] [ Edit ] [ Delete ] 12#
神秘的
luoen @ 2025-07-31 20:26:01
[ Quote ] [ Edit ] [ Delete ] 13#
我回来了
zhaodongqiang @ 2025-08-08 21:39:22
[ Quote ] [ Edit ] [ Delete ] 14#
是普及组2级问题U的答案
gaoyuanhang @ 2025-08-09 14:11:50
[ Quote ] [ Edit ] [ Delete ] 15#
@zhaodongqiang
zhaodongqiang @ 2025-08-09 14:22:43
[ Quote ] [ Edit ] [ Delete ] 16#
?
zhaodongqiang @ 2025-08-09 14:22:54
[ Quote ] [ Edit ] [ Delete ] 17#
有事说事
zhaodongqiang @ 2025-08-09 14:32:29
[ Quote ] [ Edit ] [ Delete ] 18#
你们知道gaoyuanhang是哪个班的吗
zhaodongqiang @ 2025-08-09 14:33:19
[ Quote ] [ Edit ] [ Delete ] 19#
按道理来说,新学员应该不知道讨论版的
zhaodongqiang @ 2025-08-09 14:39:55
[ Quote ] [ Edit ] [ Delete ] 20#
gaoyuanhang的逆天发言
gaoyuanhang @ 2025-07-29 15:27:17[ Quote ] [ Edit ] [ Delete ] 10#
你们给我闭嘴
gaoyuanhang @ 2025-07-29 15:27:44[ Quote ] [ Edit ] [ Delete ] 11#
我给你们肘飞
zhaodongqiang @ 2025-08-09 15:02:03
[ Quote ] [ Edit ] [ Delete ] 21#
三星只有15个学员
luoen @ 2025-08-09 18:31:49
[ Quote ] [ Edit ] [ Delete ] 22#
呃,gaoyuanhang应该不算是新学员了,他学的时间不比我短太多,而且好像是我以前告诉他讨论版的(憨笑)
zhaodongqiang @ 2025-08-10 10:56:38
[ Quote ] [ Edit ] [ Delete ] 23#
666
gaoyuanhang @ 2025-08-12 14:16:20
[ Quote ] [ Edit ] [ Delete ] 24#
2de1fffr3de
gaoyuanhang @ 2025-08-12 14:16:29
[ Quote ] [ Edit ] [ Delete ] 25#
2de1fffr3de
gaoyuanhang @ 2025-08-12 14:16:36
[ Quote ] [ Edit ] [ Delete ] 26#
2de1fffr3de
yuzihao @ 2025-10-02 17:21:43
[ Quote ] [ Edit ] [ Delete ] 27#
啊打发撒旦