zoukankan      html  css  js  c++  java
  • 3*(4+6)-7 # 用代码实现这个运算表达式,仅包含逆波兰式部分,算术结果部分未写出

    #include<vector>
    #include<iostream>
    #include<string.h>
    using namespace std;
    void pr(char *str)
    {
    cout<<"算式长度:"<<strlen(str);
    vector<char> s1(strlen(str));
    vector<char> s2(strlen(str));
    int i=0;
    while(str[i]!='')
    {

    if(str[i]>='0'&&str[i]<='9')
    {
    char ch=str[i];
    s1.push_back(ch);
    i++;
    }
    else if(str[i]==')')
    {

    while(s2.back()!='(')
    {
    char ch=s2.back();

    s1.push_back(ch);
    s2.pop_back();
    }
    s2.pop_back();

    i++;
    }
    else if(str[i]=='+'||str[i]=='-')
    {
    if(s2.back()=='*'||s2.back()=='/')
    {
    s1.push_back(s2.back());
    s2.pop_back();
    s2.push_back(str[i]);
    i++;
    }
    else{
    s2.push_back(str[i++]);
    }
    }
    else{
    s2.push_back(str[i++]);
    }
    }
    while(!s2.empty())
    {
    s1.push_back(s2.back());
    s2.pop_back();
    }
    vector<char>::iterator it;
    for(it=s1.begin();it<s1.end();it++)
    {
    cout<<*it<<" ";
    }

    }
    int main()
    {
    char str[]="3*(4+6)-7";
    pr(str);
    return 0;
    }

    存在不足之处,考虑不周处望批评指正

  • 相关阅读:
    Android smali 语法
    iOS 发布计费点测试
    how-to-stop-non-jailbroken-pirates-theory
    shell script
    文章收藏
    NB BAT批量读取图片文件属性
    JAVA LUHN
    MAC NDK 编译 Cocos2dx 问题
    Mac 下解压缩安装Android ndk bin 文件
    MVC Json输出调试信息
  • 原文地址:https://www.cnblogs.com/8335IT/p/4854552.html
Copyright © 2011-2022 走看看