cout<<+'<<endl
cout<<数组【1】也不显示
输出结果不显示
将中缀转换前缀
#include <iostream>
using namespace std;
#define maxsize 50
int getPriority(char a)
{
if (a == '/' && a == '*')
return 1;
else
return 0;
}
void infixToPostFix(char infix[], char s2[], int &top2)
{
char s1[maxsize];int top1=-1;
int i = 0;
while(infix[i] != '\0')
{
if('0'<=infix[i] && infix[i] <='9')
{
s2[++top2] = infix[i];
++i;
}
else if(infix[i] == '(')
{
s1[++top1]=infix[i];
++i;
}
else if(infix[i] == '+' || infix[i] == '/' || infix[i] == '-' || infix[i] == '*')
{
if(top1 == -1 || s1[top1] == '(' || getPriority(infix[i]) > getPriority(s1[top1]))
{
s1[++top1]==infix[i];
++i;
}
else
{
s2[++top2] == s1[top1--];
}
}
else if(infix[i] == ')')
{
while(s1[top1] != '(' )
s2[++top2] =s1[top1--];
--top1;
++i;
}
}
while(top1 != -1)
{
s2[++top2] == s1[top1--];
}
}
int main()
{
char infix[maxsize]={'1','+','2','-','4','*','(','4','+','3',')','+','9'};//前缀数学式
char infix2[maxsize];
int top2=-1;
infixToPostFix(infix, infix2, top2);
for(int i=-1;i<=top2;++i)
{
cout<<infix[i];
}
cout<<endl;
for(int i=-1;i<=top2;++i)
{
cout<<infix2[i];
}
return 0;
}