该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include"h1.h"
void inistack(STA *s)
{
s->top=-1;
}
void push(STA *s,char x)
{
s->top++;
s->stack[s->top]=x;
}
void pop(STA *s)
{
s->top--;
//return(s->stack[s->top+1]);
}
char gettop(STA *s)
{
if(s->top<0)
{
printf("overflow");
return(NULL);
}
else
{
return(s->stack[s->top]);
}
}
int main()
{
char str[max];
// char x;
STA a;
STA *s;
s=&a;
inistack(s);
printf("plase inpur your formula");
scanf("%s",str);
printf("%c",str[1]);
unsigned int i=0;
for(i=0;i
{
switch(str[i])
{
case '(':push(s,str[i]);printf("1");break;
case '[':push(s,str[i]);break;
case ')':if(gettop(s)=='(')
{
pop(s);break;
}
else
{
printf("括号匹配失败!\n");
exit(0);
break;
}
case ']':if(gettop(s)=='[')
{
pop(s);break;
}
else
{
printf("括号匹配失败!\n");
exit(0);
break;
}
default:break;
} }
if(s->top=-1)
printf("括号匹配成功!\n");
else
printf("括号匹配失败!\n");
return(0);
}