| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 332 人关注过本帖
标题:求助,哪位大虾看看这个括号匹配的程序里那里出错了啊?
只看楼主 加入收藏
gongzixiaomu
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-5-4
结帖率:0
收藏
已结贴  问题点数:20 回复次数:4 
求助,哪位大虾看看这个括号匹配的程序里那里出错了啊?
#include <stdio.h>
#include <malloc.h>
typedef struct node{
    struct node *next;
    char data;
}JD;
match(char E[])
{
    JD *top,*s,*h;
    int i;
    h=(JD*)malloc(sizeof(JD*));
    h->data='0';
    h->next=NULL;
    top=h;
    while(E[i]!='\0')
    {
        char item;
        if(E[i]=='(' || E[i]=='[' || E[i]=='{')
        {
            s=(JD*)malloc(sizeof(JD*));
            s->data=E[i];
            s->next=top;
            top=s;
        }
        if(E[i]==')')
        {
            if(top==h){
            printf("mismatch");
            return 0;
            }
            item=top->data;
            s=top;
            top=s->next;
            free(s);
            if(item!=E[i]-1){
                printf("mismatching!");
                return 0;
            }
        }
            else if(E[i]==']' || E[i]=='}'){
                if(top==h){                /*测试堆栈是否为空*/
                    printf("mismatching!");
                    return 0;
                }
                item=top->data;        /*退栈*/
                s=top;
                top=s->next;
                free(s);
                if(item!=E[i]-2){
                    printf("mismatching!");
                    return 0;
                }
            }
            i++;
    }
    if(top==h)
        printf("matching!\n");
    else
        printf("mismatching!\n");
    return 1;
}
void main()
{
    char s[100]={0};
    printf("Please enter the parentheses arithmetic expression:\n");
    scanf("%s",s);
    match(s);
}
搜索更多相关主题的帖子: include 
2011-11-08 00:38
gongzixiaomu
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-5-4
收藏
得分:0 
顶起啊
2011-11-08 00:40
gongzixiaomu
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-5-4
收藏
得分:0 
在线等啊
2011-11-08 00:49
heroinearth
Rank: 10Rank: 10Rank: 10
来 自:云南曲靖
等 级:青峰侠
帖 子:430
专家分:1506
注 册:2011-10-24
收藏
得分:10 
i在使用前没有赋初值。
2011-11-08 09:06
wuyijiang07
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:74
专家分:177
注 册:2011-10-21
收藏
得分:10 
改成int match()就行了,没有指定函数的返回值类型
2011-11-08 09:24
快速回复:求助,哪位大虾看看这个括号匹配的程序里那里出错了啊?
数据加载中...
 
   



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

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