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

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


#include
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; iif(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; itop();
        s.pop();
    }
    for(i--; i>=0; i--) {
        printf("%c",d[i]);
    }
}

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