当前位置:网站首页>后缀式的计算
后缀式的计算
2022-08-04 20:42:00 【柯基@】
- 后缀式为何物?
这种表示方式把运算符写在运算对象的后面,例如,把a+b写成ab+,所以也称为后缀式。 - 它有何优点?
这种表示法的优点是根据运算对象和算符的出现次序进行计算,不需要使用括号,也便于用械实现求值。
eg:原表达式:a*(b*(c+d/e)-f)
后缀式:abcde/+f-
【例】编写一个函数,求后缀式的数值,其中后缀式存于一个字符数组exp中,exp中最后一个字符为“\0”,作为结束符,并且假设后缀式中的数字都只有一位。本题中所出现的除法运算,皆为整除运算,如2/3结果为0、3/2结果为1。
int op(int a,char Op,int b){
//运算函数
if(Op=='+') return a+b;
if(Op=='-') return a-b;
if(Op=='*') return a*b;
if(Op=='/'){
if(b==0){
cout<<"ERROR"<<endl;
return 0;
}
else
return a/b;
}
}
int com(char exp[]){
int stack[maxSize]; // maxSize 为已经定义的常量
int top=-1;
int a,b,c;
int i=0;
while(exp[i]!='\0'){
if(exp[i]>='0' && exp[i]<='9')
stack[++top]=exp[i]-'0';
else{
b=stack[top--];
a=stack[top--];
c=op(a,exp[i],b);
stack[++top]=c;
}
i++;
}
return stack[top];
}
边栏推荐
- C#的Dictionary字典集合按照key键进行升序和降序排列
- 使用 Allatori 进行 Jar 包混淆
- Go study notes (Part 1) Configuring the Go development environment
- 工龄10年的测试员从大厂“裸辞”后...
- 阿里的arthas使用,入门报错:Unable to attach to 32-bit process running under WOW64
- 2022-8-4 第七组 ptz 锁与线程池和工具类
- Apache服务器的配置[通俗易懂]
- node 的运行命令
- 新式茶饮,卷完水果还能卷什么?
- 泰山OFFICE技术讲座:底纹、高亮、边框的关系
猜你喜欢
随机推荐
拒绝服务攻击DDoS介绍与防范
How to make good use of builder mode
Win10 uwp use ScaleTransform magnify an element
2022-8-4 第七组 ptz 锁与线程池和工具类
面试官:JVM运行时数据区包含哪几部分?作用是啥?
ADB 安装 + 打驱动全教程
Elastic Search 根据匹配分和热度分排序
SAP ABAP OData 服务如何支持 $select 有选择性地仅读取部分模型字段值试读版
【TypeScript】深入学习TypeScript枚举
Retrofit的使用及原理详解
【随记】新一天搬砖 --20220727
vscode离线安装插件方法
【Web漏洞探索】跨站脚本漏洞
Oreo domain name authorization verification system v1.0.6 public open source version website source code
Comic | Two weeks after the boss laid me off, he hired me back and doubled my salary!
After encountering MapStruct, the conversion between PO, DTO and VO objects is no longer handwritten
JSD-2204-酷莎商城(管理员模块)-密码加密-Day10
mysql的存储过程介绍、创建、案例、删除、查看「建议收藏」
ts集成和使用
Debug locally and start the local server in vs code









