回 帖 发 新 帖 刷新版面

主题:判断表达式括号匹配的算法的问题?

代码如下:
#define  MAXSIZE  100                       
typedef char ELEMTYPE;
typedef struct  {
        ELEMTYPE  data[MAXSIZE];
             int  top;
         }SQSTRACK;//定义顺序栈


int  pipei(char *p)
     {
       SQSTRACK  l;
       SQSTRACK  *s;

       int x=0;
       s=&l;
       s->top=-1;
       while(p)   //在数组中循环查找括号'('和')'
          {
            if(*p='(')            //如果找到括号'(',则将其入栈
                   {s->top++;
                  s->data[s->top]=*p; }

            else if(*p==')')        //如果找到括号')',则将弹出栈顶元素


                  s->top--;

            p++;
           }
           if(s->top=-1) return 0;    //如果栈为空则括号匹配,返回0
         else
             return 1;                      //如果栈不空,则括号不匹配,返回1
      }

void main()
     {
       char  s[]="12+(3*(20/4(-8)*6";
       int  x;
         x=pipei(s);
       printf("shi:%d",x);
       getch();
       }

可是在运行时总是返回0,按照给定的数组应该返回1才对,不知哪里出了错误,请给看看好吗?谢谢了

回复列表 (共2个回复)

沙发

打扰了!我找到了!是'='同'=='混饶了

板凳

再接再厉!^_^

我来回复

您尚未登录,请登录后再回复。点此登录或注册