#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<iostream>
#define MaxSize 100
bool whether(char a)
{
if(a=='+'||a=='-'||a=='*'||a=='/')
{
return true;
}
else
{
return false;
}
}
int get(char a)
{
int flag=0;
switch(a)
{
case'(':
flag=1;
break;
case'+':
case'-':
flag=2;
break;
case'*':
case'/':
flag=3;
break;
default:
break;
}
return flag;
}
int main()
{
char expstr[100];
scanf("%s",expstr);
char op1[100],op2[100];
int top=-1,top2=-1;
int i;
i=0;
while(expstr[i]!='\0')
{
if('0'<=expstr[i]&&expstr[i]<='9')
{
op2[++top2]==expstr[i];
++i;
}
else if(expstr[i]=='(')
{
op1[++top]='(';
++i;
}
else if(expstr[i]=='+'||expstr[i]=='-'||expstr[i]=='*'||expstr[i]=='/')
{
if(top==-1||op1[top]=='('||get(expstr[i])>get(op1[top]))
{
op1[++top]=expstr[i];
++i;
}
else
{
op2[++top2]==op1[top--];
}
}
else if(expstr[i]==')')
{
while(op1[top]!='(')
{
op2[++top2]=op1[top--];
}
--top;
++i;
}
}
while(top!=-1)
{
op2[++top2]=op1[top--];
}
printf("%s",op2);
}
这段代码是哪里错了呀?看不出来,但是结果不对,请各位神仙帮帮忙,QAQ