| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2107 人关注过本帖
标题:求括号的匹配,求结果?
取消只看楼主 加入收藏
qizhongshun
Rank: 2
等 级:论坛游民
威 望:1
帖 子:31
专家分:26
注 册:2011-9-16
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
求括号的匹配,求结果?
这是我的程序,
#include"stdio.h"
#define STACK_INIT_SIZE 20
#define STACKINCRE MENT 10
typedef char  ElemType   /*将char类定义为ElemType*/
typedef struct{          /*定义一个栈类型*/
    ElemType *base;
    ElemType *top;
    int stacksize;
}sqstack;
initstack(sqstack*s)
{
    s->stack=(ElemType*)malloc(STACK_INIT_SIZE*sizeof(ElemType));
    if(!s->stack) exit(0);
    s->top=s->base;
    s->stacksize=STACK_INIT_SIZE;
}
push(stack*s,ElemType){
    if(s->top-s->base>=stacksize)
    {
        s->base=(ElemType*)malloc(s->base,(s->stacksize+STACKINCREMENT)sizeof(ElemType));
        if(!s->base) exit(0);
        s->top=s->base+stacksize;  /*..................*/
    }
    *(s->stop)=e;
    s->top++;
}
pop(sqstack*s,ElemType*e){
    if(s->top=s->base) return;
    *e=*--(s->top);
}
int stackLen(sqstack s){
    return (s.base-s.top)    /*...........*/
}
int match(char e,char c){
if(e=='('&&c=')' return 1;
if(e=='['&&c==']' return 1;
return 0;
}
main()
{sqstack s;
char e,c;
initstack(&s);
scanf("%c",&c);
while(c!='#'){
    if(!stackLen(s))
        push(&s,c);
    else
    {pop(&s,&e);
    if(!match(e,c)){
        push(&s,e);
        push(&s,c);
    }
    }
    scanf("%c",&c);
}
if(!stackLen(s)) printf("the branchets are matched/n");
else printf("the branchets are matched/n");
getche();
}

结果一直都是
--------------------Configuration: .dsp - Win32 Debug--------------------
Compiling...
Error spawning cl.exe

.obj - 1 error(s), 0 warning(s)
怎么解释?请高手指点。
搜索更多相关主题的帖子: include 
2011-11-06 10:14
qizhongshun
Rank: 2
等 级:论坛游民
威 望:1
帖 子:31
专家分:26
注 册:2011-9-16
收藏
得分:0 
  要的就是这个答案 我在调试调试
2011-11-06 10:50
qizhongshun
Rank: 2
等 级:论坛游民
威 望:1
帖 子:31
专家分:26
注 册:2011-9-16
收藏
得分:0 
回复 4楼 huanega
#include<stdio.h>
#define STACK_INIT_SIZE 20
#define STACKINCREMENT 10
typedf char ElemType
typedf struct{
    ElemType *base;
    ElemType *top;
    int stacksize;
}sqstack;
initstack(sqstack*s)
{
    s->base=(ElemType*)malloc(STACK_INIT_SIZE*sizeof(ElemType));
    if(!s->base) exit(0);
    s->top=s->base;
    s->stacksize=STACK_INIT_SIZE;
}
push(stack*s,ElemType){
    if(s->top-s->base>=s->stacksize)
    {
        s->base=(Elemtype*)realloc(s->base,(s->stacksize+STACKINCREMENT)*sizeof(ElemType));
        if(!s->base) exit(0);
        s->top=s->base+s->stacksize;  
                s->stacksize=s->stacksize+STACKINICREMENT;
    }
    *(s->stop)=e;
    s->top++;
}
pop(sqstack*s,ElemType*e){
    if(s->top=s->base) return;
    *e=*--(s->top);
}
int stackLen(sqstack s){
    return (s.top-s.base)   
}
int match(char e,char c){
if(e=='('&&c==')' return 1;
if(e=='['&&c==']' return 1;
return 0;
}
main()
{sqstack s;
char e,c;
initstack(&s);
scanf("%c",&c);
while(c!='#'){
    if(!stackLen(s))
        push(&s,c);
    else
    {pop(&s,&e);
    if(!match(e,c)){
        push(&s,e);
        push(&s,c);
    }
    }
    scanf("%c",&c);
}
if(!stackLen(s)) printf("the branchets are matched/n");
else printf("the branchets are matched/n");
getche();
}


      将s->stack改为s->base 程序打错了, 可是还是那个结果,不能运行,不知道怎么初始化才对?
2011-11-06 10:58
qizhongshun
Rank: 2
等 级:论坛游民
威 望:1
帖 子:31
专家分:26
注 册:2011-9-16
收藏
得分:0 
哦哦 我太粗心了。。
2011-11-06 11:41
qizhongshun
Rank: 2
等 级:论坛游民
威 望:1
帖 子:31
专家分:26
注 册:2011-9-16
收藏
得分:0 
回复 8楼 embed_xuel
你还记得我吗?
2013-11-04 02:23
快速回复:求括号的匹配,求结果?
数据加载中...
 
   



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

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