请教栈的运用问题!
以下代码是判定输入表达式是否正确。我测试时遇到个问题:我输入正确或错误都可以通过,但是如果先输入一个错误的按提示再输入个正确的就通过不了,求教!int pd=1;
printf("请输入一个正确的后缀表达式(以#结束)");
while(pd==1) //表达式正确性判定。
{
ch=getchar();
do
{
if((ch>='a')&&(ch<='z'))
{
Push(s,ch);
Push(t,ch);
ch=getchar();
}
else
{
Pop(s,k);
Push(t,ch);
ch=getchar();
}
pd=0;
}
while(ch!='#');
if((s.top-1)!=s.base)
{
Clean(s);
Clean(t);
printf("表达式输入错误,请输入正确的后缀表达式:");
pd=1;
}
else
pd=0;
}