这是将中缀转换为后缀的代码,我在测试用例的循环中使用,但是它没有迭代所需的输入数量,例如,如果我输入numofenput为4,它迭代3个案例... Plz帮助我此...
代码
int main()
{
stack s;int token;char x;init(&s);int numofenput;
scanf("%d",&numofenput);
do
{
while((token=getchar())!='\n')
{
if(isalnum(token))
printf("%c",token);
else
if(token=='(')
push(&s,'(');
else
{
if(token==')')
{
while((x=pop(&s))!='(')
printf("%c",x);
}
else
{
while((priority(token))<=(priority(top(&s))) &&!isempty(&s))
{
x=pop(&s);
printf("%c",x);
}
push(&s,token);
}
}
}
while(!isempty(&s))
{
x=pop(&s);
printf("%c",x);
}
numofenput--;
}while(numofenput>0);
return 0;
}
答案 0 :(得分:2)
变化:
}
numofenput--;
} while( numofenput>0 );
为:
}
numofenput--;
} while( numofenput>=0 );