没有我想要的输出 这是个括号配对问题 只涉及()【】
#include "顺序栈的相关操作函数.cpp"int GetString(char a[])
{
int i,n;
printf("请输入n的数值:");
scanf("%d",&n);
printf("请输入n个为()或者[]的字符:");
for(i=0;i<n;i++)
{
scanf("%c",&a[i]);
}
return n;
}
int main()
{
SqStack *s;
SqStack Selem;
s=&Selem;
InitStack(s);
SElemType e;
int i,n;
char a[100];
n=GetString(a);
for(i=0;i<n;i++)
{
if(a[i]=='('||a[i]=='[')
Push(s,a[i]);
else if((s->top==s->base)&&(a[i]==')'||a[i]==']'))
return Error;
else if((s->top!=s->base)&&(a[i]==')'||a[i]==']'))
{
if(a[i]-*(s->top-1)==1||a[i]-*(s->top-1)==2)
Pop(s,&e);
else
return Error;
}
}
printf("%d %d",s->base,s->top);
if(s->top==s->base)
printf("YES");
else
printf("NO");
return 0;
}