📄 kuahao.c
字号:
#include <stdio.h>
typedef struct
{char date[20];
int top;
}stack;
void initstack(stack *s) /*清空站;*/
{s->top=-1;
}
int stackempty(stack *s) /*判断站是否为空,为空返回1,否则返回0。*/
{if(s->top==-1)
return 1;
else
return 0;
}
void push(stack *s,int a) /*将数压站*/
{ s->top++;
s->date[s->top]=a;
}
void pop(stack *s) /*弹站*/
{s->top--;
printf("弹站");
}
void match(stack *s,char e[])
{int i;
char c;
for(i=0;(c=e[i])!='#';i++)
{if((c=='(')||(c=='[')||(c=='{'))
switch(c)
{case '[':if(s->date[s->top]=='('){printf("小括号的内部不允许出现大括号!");break;}else{push(s,c);continue;}
case '{':if((s->date[s->top]=='(')||(s->date[s->top]=='[')){printf("小括号的内部不允许出现大括号!");break;}else{push(s,c);continue;}
default: continue;}
else if(c==')')
{if(s->date[s->top]=='(')
{pop(s);
continue;}
else {printf("第%d个字符%c无法匹配",i+1,c); return;}
}
else if(c==']')
{
if(s->date[s->top]=='[')
{pop(s);
continue;
}
else {printf("第%d个字符%c无法匹配",i+1,c); return;}
}
else if(c=='}')
{if(s->date[s->top]=='{')
{pop(s);
continue;}
else {printf("第%d个字符%c无法匹配",i+1,c); return;}
}
else
continue;
}
if(!stackempty(s))
printf("输入的左括号没有匹配完全!!");
else printf("match!");
}
main()
{char e[20];
stack *s;
int a;
s=(stack *)malloc(sizeof(stack));
for(a=1;a<=10;a++)
{ initstack(s);
scanf("%s",&e);
match(s,e);}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -