检测括号配对
#include <stdio.h>#define MAX 30
int main(int argc, char *argv[])
{
int c,z=0,y=0,x=0,i=0;
char a[MAX];
while(((c=getchar())!='\n')&&((c=getchar())!=EOF)){
switch(c)
{
case '{':
z++;
a[i]=c;
i++;
break;
case '}':
if(a[i-1]=='{'){
z--;
i--;
}
break;
case '[':
y++;
a[i]=c;
i++;
break;
case ']':
if(a[i-1]=='['){
y--;
i--;
}
break;
case '(':
x++;
a[i]=c;
i++;
break;
case ')':
if(a[i-1]=='('){
x--;
i--;
}
break;
default:
break;
}
}
if(i==0){
printf("OK");
}else{
printf("ERROR!");
}
return 0;
}
不能正确判断是否配对,比如我输入:P},依然判断正确。
请问程序到底错在哪里呀。。