前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >洛谷 || 后缀表达式

洛谷 || 后缀表达式

作者头像
小Bob来啦
发布2021-02-09 15:14:21
4650
发布2021-02-09 15:14:21
举报

题目描述

所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级)。

如:3*(5–2)+7对应的后缀表达式为:3.5.2.-*7.+@。’@’为表达式的结束符号。‘.’为操作数的结束符号。

输入格式

输入:后缀表达式

输出格式

输出:表达式的值

输入输出样例

输入

代码语言:javascript
复制
3.5.2.-*7.+@

输出

代码语言:javascript
复制
16

说明/提示

字符串长度,1000内。

源代码:

代码语言:javascript
复制
#include <stdio.h>int main(){  char ch;  int num[1005], cnum = 0;  int a = 0;  while(scanf("%c", &ch), ch !='@'){    if(ch == '+'){      num[a - 2] = num[a - 1] + num[a - 2];      a--;    }    else if(ch == '-'){      num[a - 2] = num[a - 2] - num[a - 1];      a--;    }    else if(ch == '*'){      num[a - 2] = num[a - 2] * num[a - 1];      a--;    }    else if(ch == '/'){      num[a - 2] = num[a - 2] / num[a - 1];      a--;    }    else if(ch =='.'){      num[a] = cnum;      a++;      cnum = 0;    }    else      cnum = cnum * 10 + (ch - '0');  }  printf("%d", num[0]);  return 0;}

运行结果:

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-01-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员Bob 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 输入格式
  • 输出格式
  • 输入输出样例
  • 说明/提示
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档