首页 > 其他分享 >求前缀表达式的值

求前缀表达式的值

时间:2024-01-22 20:12:59浏览次数:30  
标签:前缀 int str include 表达式 size

#include<iostream>
#include<algorithm>
#include<string>
#include<stack>
#include<stdlib.h> 
using namespace std;

stack<double>st;

int main()
{
    string str[100]; int n = 0;
//在求前缀或者后缀的时候,从前到后读入数据,前缀的话倒着读出数据,从右往左看,有数入栈,有运算符取栈顶两个,运算完入栈
    while (cin >> str[n++]) {}
    for (int i = n - 1; i >= 0; i--)
    {
        if (str[i].size() == 1 && (str[i] == "+" || str[i] == "-" || str[i] == "*" || str[i] == "/"))
        {
            double t1, t2;
            if (st.size() < 2) {
                cout << "ERROR" << endl;
                exit(0);
            }
            else
            {
                t1 = st.top(); st.pop();
                t2 = st.top(); st.pop();
            }
            switch (str[i][0])
            {
            case '+':
                st.push(t2 + t1);
                break;
            case '-':
                st.push(t1 - t2);
                break;
            case '*':
                st.push(t1 * t2);
                break;
            case '/':
//得分点,注意除数不能为0
                if (t2 == 0) {
                    cout << "ERROR" << endl;
                    exit(0);
                }
                st.push(t1 / t2);
                break;
            }
        }
        else {
//将字符串转变为浮点数,引入头文件stdlib.h
            double x = atof(str[i].c_str());
            st.push(x);
        }
    }
    printf("%.1f", st.top());
    return 0;
}

 

标签:前缀,int,str,include,表达式,size
From: https://www.cnblogs.com/daimazhishen/p/17980871

相关文章

  • 【动态规划】正则表达式
    目录1.题目2.应用2.1.Leetcode10.正则表达式匹配题目解题思路代码实现1.题目题目列表:序号题目难度110.正则表达式匹配困难2.应用2.1.Leetcode10.正则表达式匹配题目10.正则表达式匹配解题思路设\(dp[i][j]\)表示\(s\)的前\(i\)个字符与......
  • 从CF1878E学习前缀和维护二进制拆位分析思想
    Problem-1878E-Codeforces这题我想到了个大概,按位与的话结果肯定是递减的,而且要从二进制每一位下手,但是思路只停留在暴力对整个数操作。当然,利用这个性质,肯定要二分。拆位思想比如要计算111000111011100100010我们知道最后结果肯定是留下都有\(1\)的位0100000......
  • js用前缀名查找class或id节点,js模糊查询某个dom节点
     1//参数dom为htmldom节点2//参数key为需模糊查询的名称字段3functionqueryClassNode(dom,key){4letcollectArray=[];5for(leti=0;i<dom.childNodes.length;i++){6//核心点7if(d......
  • [转]一篇搞懂javascript正则表达式
    原文地址:一篇搞懂javascript正则表达式-知乎最近在看vue源码的时候发现一个令人头疼的问题,就是正则表达式,在此之前我对正则只有一知半解,没有深入了解,所以看到正则高级写法都不知是什么含义,哎...,所以就去查看相关资料和博主写的,特意整理记录一下学习的过程并用通俗易懂的文章分......
  • Jmeter 之正则表达式的使用
    1背景及用途:html、json数据都可以转化为文本,提供给正则去提取,使用正则可以提取全部数据,这就是正则表达式非常强大的一点。html格式响应更适合用xpath提取,性能比正则好一点json格式响应数据适合用jsonpath来提取,性能比正则好一点 2正则表达式介绍:  3添加......
  • 使用LINQ、Lambda 表达式 、委托快速比较两个集合,找出需要新增、修改、删除的对象
    快速对比两个list数据集合此文引用csdn:https://blog.csdn.net/Zhu_daye/article/details/104798410小批量、快速对比两个list数据集合usingSystem.Linq.Expressions;Main();voidMain(){//对比源集合varsource=GenerateStudent(1,10000,1000);//......
  • js 立即执行函数表达式
    如果没有函数名,当函数需要引用自身时只能使用已经过期的arguments.callee引用,比如在递归中。另一个函数需要引用自身的例子,是在事件触发后事件监听器需要解绑自身。匿名函数省略了对于代码可读性/可理解性很重要的函数名。一个描述性的名称可以让代码不言自明。行内函数表达式......
  • 代码随想录算法训练营第 十 一 天| 20. 有效的括号 1047. 删除字符串中的所有相邻重
    LeetCode 20.有效的括号题目链接:20.有效的括号思路:采用栈数据结构解题;遇到左括号,压右括号入栈 LeetCode 1047.删除字符串中的所有相邻重复项题目链接:1047.删除字符串中的所有相邻重复项注意:Java中队列实现类API的使用 LeetCode 150.逆波兰表达式求值题目链......
  • 逆波兰表达式求值
      /**@lcapp=leetcode.cnid=150lang=cpp**[150]逆波兰表达式求值*///@lccode=startclassSolution{public:intcalc(intleft,intright,charsign){switch(sign){case'+':returnleft+ri......
  • 浅谈C++简单前缀和实现
    浅谈前缀和2023.9.28\(tips:\)文章持续更新中,欢迎关注\(upd:\)文章从洛谷博客迁移至博客园(\(2024.1.19\))洛谷B3612【深进1.例1】求区间和题目大E:有一个内部元素个数为\(n\)的数组\(a\),现在有m次询问,求a[l]到a[r]之间所有元素的和朴素的做法:#include<iostream>usin......