| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 181 人关注过本帖
标题:{}[]()的匹配问题,哪里错了,高手看下
取消只看楼主 加入收藏
zpysd
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-11-2
收藏
 问题点数:0 回复次数:0 
{}[]()的匹配问题,哪里错了,高手看下
#include <stdio.h>
#include <stdlib.h>
#define SIZE 100
struct stack{
    char *top;
    char *base;
    int stacksize;};
init (struct stack *s)
{s->base=(char*)malloc(SIZE *sizeof(char) );
if(!s->base){
    printf ("创建失败");
    exit(0);
}
s->top=s->base;
s->stacksize=SIZE;
return 1;}
pop (stack *s,char*e)
{
    if(s->top=s->base) {
        printf("匹配失败");
        exit(0);
    }
    *e=*--s->top;
    return 1;
}
push (struct stack*s,char e)
{if(s->top-s->base>=s->stacksize)
{printf("空间已满");
exit(0);}
*s->top++=e;
return 1;
}
void main (){
struct stack s;
init(&s);
char ch,a,e;
printf("请输入计算式,以回车结束\n");
while((ch=getchar())!='\n')
{if(ch=='('||ch=='['||ch=='{')
push(&s,ch);
if(ch==')'||ch==']'||ch=='}')
{
    a=pop(&s,&e);
        if(a=='[')
           a=']';
        if (a=='(')
            a=')';
         if (a=='{')
             a='}';
    if(a!=ch){
    printf("匹配失败");
    exit(0);}
}

}
if(s.top=s.base)printf("计算式中符号匹配");
else
printf("匹配失败");
}

2010-11-02 10:23
快速回复:{}[]()的匹配问题,哪里错了,高手看下
数据加载中...
 
   



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

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