| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 367 人关注过本帖
标题:括弧匹配,求改错,谢谢
只看楼主 加入收藏
多余的流星
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
快速回复:括弧匹配,求改错,谢谢
数据加载中...
 
   



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

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