问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

关于C++编程

发布网友 发布时间:2023-05-18 10:54

我来回答

2个回答

热心网友 时间:2023-09-30 16:17

首先必须输入数据组数.
然后输入的表达式后面不需要加'='
比如你uao求"1+2=?",那么直需要在输入数据组数以后输入
1+2就可以了.
//先输入数据组数,然后后面每行输入表达式,使用栈来实现

#include <iostream.h>
#include <stack>
using namespace std;
int precede(char op1,char op2)//> 1,= 0,<-1
{
switch(op1)
{
case '+':
if(op2=='+' || op2=='-' || op2==')' || op2=='#')
return 1;
return -1;
case '-':
if(op2=='+' || op2=='-' || op2==')' || op2=='#')
return 1;
return -1;
case '*':
if(op2=='(')
return -1;
return 1;
case '/':
if(op2=='(')
return -1;
return 1;
case '(':
if(op2==')')
return 0;
return -1;
case ')':
return 1;
case '#':
return -1;
default:
break;
}
return 0;
}
int compute(int num1,char op,int num2)
{
int num=0;
switch(op)
{
case '+':
num=num1+num2;
break;
case '-':
num=num1-num2;
break;
case '*':
num=num1*num2;
break;
case '/':
num=num1/num2;
break;
}
return num;
}
int calculator(char str[205])
{
int i,pre,num,num1,num2;
char op1;
bool flag;
stack<char> charsta;
stack<int> intsta;
charsta.push('#');
i=strlen(str);
str[i]='#';
str[i+1]='\0';
i=0,num=0;
flag=false;
while(str[i])
{
if(str[i]>='0' && str[i]<='9')
{
flag=true;
num=num*10+str[i]-'0';
i++;
}
else
{
if(flag)
{
flag=false;
intsta.push(num);
num=0;
}
op1=charsta.top();
if(op1=='#' && str[i]=='#')
break;
pre=precede(op1,str[i]);
switch(pre)
{
case 0:
charsta.pop();
i++;
break;
case 1:
charsta.pop();
num2=intsta.top();
intsta.pop();
num1=intsta.top();
intsta.pop();
intsta.push(compute(num1,op1,num2));
break;
case -1:
charsta.push(str[i]);
i++;
break;
}
}
}
num=intsta.top();
intsta.pop();
return num;
}
int main()
{
char str[205];
int i,n;
cin>>n;
for(i=0;i<n;i++)
{
cin>>str;
printf("%d\n",calculator(str));
}
return 0;
}

热心网友 时间:2023-09-30 16:17

某本数据结构树上有的,我见到过。是用c语言编的,我去看下,是用堆栈的
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
前几天在楼下吃饭,店家推荐使用淘气购支付,听说可以用豆豆换东西。会... 绵阳淘气购科技有限公司怎么样? 四川省淘气购商贸有限公司怎么样? 盐酸洛美沙星分散片的作用 盐酸洛美沙星颗粒的剂量如何根据不同感染情况调整? 盐酸洛美沙星颗粒的化学名是什么? 盐酸洛美沙星胶囊功效 洛美沙星盐酸洛美沙星 洛美沙星的功效与作用 盐酸洛美沙星颗粒能治疗哪些类型的感染? 物理电场题目,“UAO=UOB=UO”里面UO什么意思 uaoybx.exe是什么进程 一台电脑显示器的体积约是3什么 佛法灭后,佛菩萨怎样普渡众生呢? 佛、菩萨怎么度众生? 佛是怎样渡众生的? 请问 佛菩萨如何帮助苦难众生 款清交房包括贷款吗 提问:双乳腺多发性囊肿、双乳囊性增生是怎么回事? 双侧乳腺囊性增生 双侧乳腺囊性增生什么意思 fallin属于什么风格 再靠近我一点点让我能穿透你的视线是什么歌 歌曲Falling完整歌词介绍 能讲一下仙途大概的故事背景么? 路虎揽胜行政版智能卡匹配能遥控不能启动 情态动词缩写是什么? 长安汽车门上的LH是什么意思? Modal verbs是什么啊意思 19881018出生的人是什么星座的?(星座高手进) 英文modal verb 我在iphone上下载的应用不想用了手机上删了怎么在帐户了删除? 幸福不是高不可攀的高峰,而是抬头就能看到的风景是什么意思 消弧消谐和消弧线圈的一种东西么,什么区别? 初中有个女生在我的同学录上写了“聚会时仍是个朴素的少年,奔跑起来像一道春天的闪电”是什么意思? 《你曾是少年》:前奏一起,便唤醒我年少时期,那个朴素的少年 姐姐你鞋带开了什么意思 老师你鞋带开了是谁说的 1洗2漂3脱水什么意思? 别愚孝,更别伪孝 火葬是不是不孝? 税务勾选序号是什么 有这么多检测一氧化碳泄露的方法,为什么还是有煤气中毒的现象发生? 屋里用碳警报器会响么 山东发布通知切实做好防范一氧化碳中毒工作,一氧化碳中毒为什么这么骇人? 萧斧之诛的解释 斧断的诗句斧断的诗句是什么 小斧劈的诗句小斧劈的诗句是什么 烤箱能当微波炉用吗烤箱和微波炉的区别 老人去世脚蹬装什么东西? 博士和正副所长钓鱼上厕所的议论文