中缀到后缀表示法...测试用例循环中的错误

时间:2016-09-10 19:38:19

标签: c++

这是将中缀转换为后缀的代码,我在测试用例的循环中使用,但是它没有迭代所需的输入数量,例如,如果我输入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;
     }

1 个答案:

答案 0 :(得分:2)

变化:

}
    numofenput--;
} while( numofenput>0 );

为:

}
    numofenput--;
} while( numofenput>=0 );