马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
//出栈
int pop(char * a,int top){
if (top==-1) {
return -1;
}
top--;
return top;
}
//入栈
int push(char* a,int top,char data)
{
a[++top]=data;
return top;
}
int main()
{
char s[1000]={'\0'};
int top=-1;
char *a="(((())))[]([()()[]])";
int flag=0;
while(*a!='\0')
{
if(*a=='(' || *a=='[')
{
top=push(s, top, *a);
}
if(*a==')')
{
if('('==s[top])
{
top=pop(s,top);
}
else
{
flag=1;
break;
}
}
if(*a==']')
{
if('['==s[top])
{
top=pop(s,top);
}
else
{
flag=1;
break;
}
}
++a;
}
if (flag || top>=0)
{
printf("表达式非法\n");
}
else
{
printf("恭喜,通过测试\n");
}
return 0;
}
|