| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 587 人关注过本帖
标题:急啊,请兄弟们帮帮
只看楼主 加入收藏
xiix
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2006-5-18
收藏
 问题点数:0 回复次数:6 
急啊,请兄弟们帮帮

这是关于{[(匹配检测的 怎么我也弄不出来 到底错哪了

#include<iostream.h>

#include<malloc.h>
#define maxlen 200
typedef char elemtype;

typedef struct sqstack
{elemtype data[maxlen];
int top;
}stack;

void init(stack *st)
{st->top=0;
}

void push(stack *st,elemtype x)
{if(st->top==maxlen-1)
{cout<<"上溢"<<endl;
//return 0;
}
else
{st->top++;
st->data[st->top]=x;
//return 1;
}
}

void pop(stack*st,elemtype *x)
{if(st->top==0)
{cout<<" 下溢"<<endl;
//return 0;
}
else
{*x=st->data[st->top];
st->top--;
//return 1;
}
}

int empty(stack *st)
{if(st->top==0)
return 1;
else return 0;
}
int correct (char *str)
{stack st;
char x;int ok=1;
init (&st);
for(;*str!='/0';str++)
{switch(*str)
{case '(':push(&st,'(');
case '[': push(&st,'[');
case'{':push(&st ,'{');
case')':pop(&st,&x);if( x!='(')
ok=0;break;
case']':pop(&st,&x);if(x!='[')
ok=0;break;
case'}':pop(&st,&x) ;if(x!='{')
ok=0;break;
}
if(!ok)break;
}
if(empty(&st)&&ok) return 1;
else return 0;}

void main()
{char *str;
str=(char*)malloc(10*sizeof(char));
cout<<"str :";
cin>>str;
if(correct(str)) cout<<"表达式括号匹配"<<endl;
else cout<<"表达式括号不匹配"<<endl;
}

搜索更多相关主题的帖子: 兄弟 
2006-05-22 18:08
桂圆
Rank: 1
等 级:新手上路
威 望:1
帖 子:101
专家分:0
注 册:2006-5-15
收藏
得分:0 
?? 我编译了 没有什么错误啊 呵呵 你问的问题我有点不太明白
能说的再清楚些吗

2006-05-22 20:04
xiix
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2006-5-18
收藏
得分:0 

桂圆兄啊,是编译没什么错误但运行就有问题了 无法进行检测啊帮忙再瞧瞧 谢过了

2006-05-23 17:30
freshman42
Rank: 1
等 级:新手上路
威 望:1
帖 子:94
专家分:0
注 册:2005-12-4
收藏
得分:0 
以下是引用xiix在2006-5-22 18:08:00的发言:

这是关于{[(匹配检测的 怎么我也弄不出来 到底错哪了

#include<iostream.h>

#include<malloc.h>
#define maxlen 200
typedef char elemtype;

typedef struct sqstack
{elemtype data[maxlen];
int top;
}stack;

void init(stack *st)
{st->top=0;
}

void push(stack *st,elemtype x)
{if(st->top==maxlen-1)
{cout<<"上溢"<<endl;
//return 0;
}
else
{st->top++;
st->data[st->top]=x;
//return 1;
}
}

void pop(stack*st,elemtype *x)
{if(st->top==0)
{cout<<" 下溢"<<endl;
//return 0;
}
else
{*x=st->data[st->top];
st->top--;
//return 1;
}
}

int empty(stack *st)
{if(st->top==0)
return 1;
else return 0;
}
int correct (char *str)
{stack st;
char x;int ok=1;
init (&st);
for(;*str!='\0';str++) // 一个小错误
{switch(*str)
{case '(':push(&st,'(');
case '[': push(&st,'[');
case'{':push(&st ,'{');
case')':pop(&st,&x);if( x!='(')
ok=0;break;
case']':pop(&st,&x);if(x!='[')
ok=0;break;
case'}':pop(&st,&x) ;if(x!='{')
ok=0;break;
}
if(!ok)break;
}
if(empty(&st)&&ok) return 1;
else return 0;}

void main()
{char *str;
str=(char*)malloc(10*sizeof(char));
cout<<"str :";
cin>>str;
if(correct(str)) cout<<"表达式括号匹配"<<endl;
else cout<<"表达式括号不匹配"<<endl;
}

以后要最好加上注释,让人比较好看嘛!


2006-05-23 17:49
xiix
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2006-5-18
收藏
得分:0 
谢了 总是粗心 啊  不知桂圆兄怎么联系啊 交个朋友了
2006-05-24 12:42
吻舞双全
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-3-27
收藏
得分:0 
是F回答的呀
2006-05-24 13:13
xiix
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2006-5-18
收藏
得分:0 
道歉了 很对不起了 多谢f 了  哦不 都谢了 这个论坛真好
2006-05-25 19:37
快速回复:急啊,请兄弟们帮帮
数据加载中...
 
   



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

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