7-21 求前缀表达式的值(25 分)

算术表达式有前缀表示法、中缀表示法和后缀表示法等形式。前缀表达式指二元运算符位于两个运算数之前,例如2+3*(7-4)+8/4的前缀表达式是:+ + 2 * 3 - 7 4 / 8 4。请设计程序计算前缀表达式的结果值。

输入格式:

输入在一行内给出不超过30个字符的前缀表达式,只包含+-*\以及运算数,不同对象(运算数、运算符号)之间以空格分隔。

输出格式:

输出前缀表达式的运算结果,保留小数点后1位,或错误信息ERROR

输入样例:

+ + 2 * 3 - 7 4 / 8 4

输出样例:

13.0思路:这玩意儿确实很基础,答案参照了下面这个简版的逆波兰表达式写法http://blog.csdn.net/linsheng9731/article/details/21615959
测试点 提示 结果 耗时 内存
0 sample 4种运算 答案正确 2 ms 244KB
1 运算数超过1位整数且有负号 答案正确 2 ms 256KB
2 非正常退出 答案正确 2 ms 256KB
3 只有1个数字,前有+号 答案正确 2 ms 240KB
第三个测试点卡了会,其实就是除数不能为零的情况。AC代码如下:
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<sstream>
#include<stdlib.h>
#include<iostream>
using namespace std;
stringstream ss;
int flag;
double f()
{char c[9];if (!(ss >> c))flag = 1; if (c[1] == '\0'){double numb1, numb2;switch (c[0]){case '+':return f() + f(); break;case '-':return f() - f(); break;case '*':return f()*f(); break;case '/':numb1 = f(); numb2 = f();if (fabs(numb2-0.0)<0.0000001){flag = 1;return 0.0;}else return numb1 / numb2; break;}}return atof(c);
}
int main()
{string s;flag = 0;getline(cin, s);ss << s;double n = f();if (flag)cout << "ERROR" << endl;else printf("%.1lf\n", n);
}

转载于:https://www.cnblogs.com/zengguoqiang/p/8460313.html

7-21 求前缀表达式的值相关推荐

  1. 7-211 求前缀表达式的值 (25 分)

    7-211 求前缀表达式的值 (25 分) 算术表达式有前缀表示法.中缀表示法和后缀表示法等形式.前缀表达式指二元运算符位于两个运算数之前,例如2+3*(7-4)+8/4的前缀表达式是:+ + 2 * ...

  2. PTA求前缀表达式的值python求解

    7-41 求前缀表达式的值 分数 25 算术表达式有前缀表示法.中缀表示法和后缀表示法等形式.前缀表达式指二元运算符位于两个运算数之前,例如2+3*(7-4)+8/4的前缀表达式是:+ + 2 * 3 ...

  3. 3-8 求前缀表达式的值

    分数 20 全屏浏览题目 切换布局 作者 DS课程组 单位 浙江大学 算术表达式有前缀表示法.中缀表示法和后缀表示法等形式.前缀表达式指二元运算符位于两个运算数之前,例如2+3*(7-4)+8/4的前 ...

  4. 3-07. 求前缀表达式的值(25) (ZJU_PAT数学)

    题目链接:http://pat.zju.edu.cn/contests/ds/3-07 算术表达式有前缀表示法.中缀表示法和后缀表示法等形式.前缀表达式指二元运算符位于两个运算数之前,比如2+3*(7 ...

  5. 7-21 求前缀表达式的值 (25 分)(思路详解)

    一:题目 算术表达式有前缀表示法.中缀表示法和后缀表示法等形式.前缀表达式指二元运算符位于两个运算数之前,例如2+3*(7-4)+8/4的前缀表达式是:+ + 2 * 3 - 7 4 / 8 4.请设 ...

  6. matlab求下列表达式的值,编程求下列表达式的值

    typedef D. _123 2.下列表达式的值哪些不等于 0? A. 2&g... #define M 5 main() { int n,c; n=2; c=M*n; 精彩文档 print ...

  7. 信息竞赛进阶指南--递归法求中缀表达式的值,O(n^2)(模板)

    // 递归法求中缀表达式的值,O(n^2) int calc(int l, int r) {// 寻找未被任何括号包含的最后一个加减号for (int i = r, j = 0; i >= l; ...

  8. 计算前缀表达式与后缀表达式

    前缀表达式:从后往前扫,遇到操作数入栈.遇到字符时取两栈顶元素进行相应运算后结果入栈. 后缀表达式:与上类似,只是是从前往后扫. 求前缀表达式的值 (25 分) 算术表达式有前缀表示法.中缀表示法和后 ...

  9. 前缀表达式与后缀表达式求法(栈的应用)

    1.前缀.中缀.后缀表达式 中缀表达式即为人们熟悉的数学运算式子写法.而前缀.后缀表达式是为了计算机计算方便的写法. 前缀表达式是一种没有括号的算术表达式,与中缀表达式不同的是,其将运算符写在前面,操 ...

最新文章

  1. 在mac下搭建java开发环境
  2. js 数组、对象转json 以及json转 数组、对象
  3. 前端面试题及答案整理(一)
  4. django如何给上传的图片重命名(给上传文件重命名)
  5. mysql item_MySQL源代码:关于MySQL的Item对象
  6. Py中reshape中的-1表示什么【转载】
  7. VC 无标题栏对话框移动
  8. 如何成为一个真正在路上的Linuxer
  9. php区块链开发游戏,php程序员如何开发区块链、以太坊、智能合约的教程
  10. 2.2.7 虚拟Ethernet以太网卡
  11. 《概率论与数理统计.宋浩》前七章笔记汇总
  12. i国网app苹果版_黑白直播app苹果-黑白直播苹果手机版下载
  13. AmapUtil--高德地图工具类
  14. OneNote 深度评测:使用资源、插件、模版
  15. SAP CDS UI 常用注解用法
  16. 孟岩:想抓住EOS的机会,从这四个方向入手吧!
  17. python求平均数和中位数
  18. cron表达式入门_Sourcehunt:Cron管理,Hackathon入门,PHP-GUI…
  19. ZYNQ之路--程序固化教程
  20. 《善数者成:大数据改变中国》读书笔记3

热门文章

  1. 区块链2.0:智能合约
  2. Unity3D游戏-愤怒的小鸟游戏源码和教程(二)
  3. Django model进阶
  4. 制作liveusb实现centos6.2全自动无人职守安装
  5. 理解、学习与使用Java中的Optional
  6. java.util.concurrent BlockingQueue详解
  7. 四、设计模式——策略模式
  8. 我的网站-广西信息平台_广西虚拟主机
  9. 关于开源软件的书籍一定要尽量提供搭配好的软件版本
  10. 在IIS中写Python的CGI脚本