zoukankan      html  css  js  c++  java
  • 1499-luogu洛谷 后缀表达式

    题目描述

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

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

    输入输出格式

    输入格式:

    输入:后缀表达式

    输出格式:

    输出:表达式的值

    输入输出样例

    输入样例#1: 复制
    3.5.2.-*7.+@
    输出样例#1: 复制
    16

    说明

    字符串长度,1000内。

    ------------------------------------------分割线再次上线-----------------------------------------------------------------------------------------------------------------------------------------

    确认过眼神

    水题本题

    依旧

    更水

    一道栈的模拟

    但有很多细节需要关注

    我就是败在这了

    比如
    1.有的计数器需要清0

      n在这里表示的是输入的数(由字符转化而来的) 当它遇到‘.’的时候 把n压进栈后 n的值就清0 为了记下一个数

    2.某些变量的初始值

      n的初始值应为0 否则也易出错

    3.if判断到@的时候就直接printf并return 0 以免出错

    4.先进栈的后出 运算法则是从左到右 先出栈的是右面的

    以上

    ==========================================这是一个不一样的分割线=========================================================

    #include<cstdio>
    #include<stack>
    using namespace std;
     
    stack<int> a;
    int main()
    {
     int n=0,sum;
     char m;
     while(scanf("%c",&m))
     {
      if(m == '@')
      {
       printf("%d",a.top());
       return 0;
      }
      else
       if(m>='0' && m<='9')
        n=n*10+m-'0';
       else
        if(m == '.')
        {
         a.push(n);
         n=0;
        }
        else
        {
         int x=a.top();a.pop();
         int y=a.top();a.pop();
         if(m =='+')
         {
          sum=x+y;
          a.push(sum);
         }
         if(m == '-')
         {
          sum =y-x;
          a.push(sum);
         }
         if(m == '*')
         {
          sum =x*y;
          a.push(sum);
         }
         if(m == '/')
         {
          sum =y/x;
          a.push(sum);
         }
        }
     }
    }
  • 相关阅读:
    mysql安装部署
    SSH升级
    符号、特殊字符的英文读法
    用python开发视频压缩器
    VSCode配置项
    工厂模式(简单工厂模式,工厂方法模式,抽象工厂模式)
    单例模式
    Jquery 绑定事件
    中文分词 新建索引 更新索引
    微信自动回复机器人
  • 原文地址:https://www.cnblogs.com/darlingroot/p/10295996.html
Copyright © 2011-2022 走看看