标题:括弧匹配,求改错,谢谢
只看楼主
多余的流星
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2011-5-2
结帖率:69.23%
 问题点数:0 回复次数:0 
括弧匹配,求改错,谢谢
# include <stdio.h>
# include <malloc.h>
typedef struct
{         
    char  *base;
    char *top;
} sqstack;
void itinstack(sqstack &s)
{
   

    s.base=(char *)malloc(20*sizeof(char));
    s.top=s.base;
   
}
void push(sqstack &s,char e)//插入元素e为新的栈顶元素
{
    *s.top++=e;
}
 int stackempty(sqstack &s)//若栈为空栈,则返回1,否则返回0
  {
     if(s.top==s.base) return 1;
     else return 0;
  }



void main()
{
    int i=0,state;
    printf("输入括号");
   char a[20];
   sqstack s;
    gets(a);
   
    itinstack(s);
    i=0;
     state=1;
   for(;i<20&&state;)
   {   
       switch(a[i])
       {
       case '(':
       case '[':
       case '{':  push(s,a[i]);i++;break;
       case ')':
                  if(! stackempty(s) &&  *(s.top-1)=='(')
                  {  --s.top;i++;}
                  else state = 0;
                       break;
       case ']':
                 if(! stackempty(s) && *(s.top-1)=='[')
                  { --s.top; i++;}
                  else state = 0;
                       break;
       case '}':
               if(! stackempty(s) && *(s.top-1)=='{')
                  { --s.top; i++;}
                  else state = 0;
                       break;
      
      
       }
   }
   if(state==1&&stackempty(s))
   {
      printf("匹配");
   }
   else
        printf("不匹配");
   printf("\n");
   
}
搜索更多相关主题的帖子: include return state 元素 
2011-10-17 21:01



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-352739-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.264807 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved