一个C++小程序关于括号匹配问题。运行可以但输出最终结果不对,请求帮忙

来源:百度知道 编辑:UC知道 时间:2024/06/18 11:01:24
#define STACK_SIZE 100
#include <iostream>
using namespace std;
typedef struct{
char *base;
char *top;
}sq;
void creatstack(sq &s);
void push(sq &s,char x);//左括号依次进栈
void correct(sq &s,char e);//进行匹配
char out();//输出栈中的括号
main()
{
sq s;char e;
creatstack(s );//创建一个空栈
correct(s,e );
system("pause");
}
void creatstack(sq &s)
{
s.base= new char [STACK_SIZE];
if(!s.base)
exit(0);
s.top=s.base;
}
void push(sq &s,char x)
{
int flag=1;
*s.top=x;
s.top++;
}
char out()
{
sq s;
char a;
a=*(s.top-1);
return a;
}
void correct(sq &s,char e)
{
int flag=1;char b;
cout<<"请输入括号序列,以一个#结束 \n";
cin>>e;
while((e!='#')&

没明白你的这个是干嘛用的:)代码写的不好!呵呵加些注释,例如这个函数
char out()
{
sq s;
char a;
a=*(s.top-1);
return a;
}

你要返回的是什么?在函数里创建一个sq的对象,也没有赋值,*(s.top-1);得到的是什么呢?为什么要返回呢?没明白!不知道我想的对不!

你这个是括号匹配的问题,数据结构书上有现成的题目的。。