余skr 2023-03-31 21:55 采纳率: 92.3%
浏览 14
已结题

关于#c++#的问题:中缀表达式转为后缀表达式用栈写的,提交样例没问题,请帮我指出问题相信#include <bits>

中缀表达式转为后缀表达式用栈写的,提交样例没问题,但是评测不通过,请帮我指出问题相信


#include<bits/stdc++.h>
using namespace std;
char Precede(char a, char b) {
    if (a == '+' || a == '-') {
        if (b == '+' || b == '-' || b == ')' || b == '#') {
            return '>';
        } else {
            return '<';
        }
    } else if (a == '*' || a == '/') {
        if (b == '+' || b == '-' || b == '*' || b == '/' || b == ')' || b == '#') {
            return '>';
        } else {
            return '<';
        }
    } else if (a == '(') {
        if (b == ')') {
            return '=';
        } else if (b == '#') {
            return '?';
        } else {
            return '<';
        }
    } else if (a == '#') {
        if (b == '#') {
            return '=';
        } else if (b == ')') {
            return '?';
        } else {
            return '<';
        }
    }
}
int main() {
    stack<char>s;
    stack<char>z;
    char b='#';
    char d[10005]= {0};
    z.push(b);
    char a[10005];
    scanf("%s",a);
    int n,i,j;
    n=strlen(a);
    a[n]=b;
    for(i=0; i<n; i++) {
        if(a[i]!='*'&&a[i]!='+'&&a[i]!='-'&&a[i]!='/'&&a[i]!='#'&&a[i]!='('&&a[i]!=')') {
            s.push(a[i]);
        } else if((Precede(z.top(),a[i]))=='<') {
            z.push(a[i]);
        } else if((Precede(z.top(),a[i]))=='>') {
            if(a[i]!=')') {
                s.push(a[i]);
            } else if(a[i]==')') {
                for(; z.top()!='(';) {
                    s.push(z.top());
                    z.pop();
                }
                z.pop();
            }
        }
    }

    while(z.top()!='#') {
        s.push(z.top());
        z.pop();
    }
    
    int len=s.size();
    for( i=0; i<len; i++) {
        d[i]=s.top();
        s.pop();
    }
    for(i--; i>=0; i--) {
        printf("%c",d[i]);
    }
}
  • 写回答

1条回答 默认 最新

  • threenewbee 2023-03-31 22:09
    关注

    题目什么要求,是否要考虑括号

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月1日
  • 创建了问题 3月31日

悬赏问题

  • ¥15 angular有偿编写,
  • ¥15 VB.NET使用保存对话框保存图片?
  • ¥15 centos7系统下abinit安装时make出错
  • ¥15 hbuildex运行微信小程序报错
  • ¥15 关于#python#的问题:我知道这个问题对你们来说肯定so easy
  • ¥15 wpf datagrid如何实现多层表头
  • ¥15 为啥画版图在Run DRC会出现Connect Error?可我Calibre的hostname和计算机的hostname已经设置成一样的了。
  • ¥20 网站后台使用极速模式非常的卡
  • ¥20 Keil uVision5创建project没反应
  • ¥15 mmseqs内存报错