#include<stdio.h>
char cc[100]; //符号栈
char op=0; //符号栈指针
//取得一行字符串,长度最大100
char* getLine()
{
static char s[100];
char c;
int i=0;
while((c=getchar())!='\n')
s[i++]=c;
s[i]='\0';
return s;
}
//入栈
void push(char c)
{
cc[op++]=c;
}
//出栈
char pop()
{
char c=cc[--op];
return c;
}
//从字符串找出未配对的{和(符号并给出位置。
void findError(char s[])
{
int i=0;
char c;
while((c=s[i])!='\0')
{
if(c=='(' || c=='{')
push(c);
switch(c)
{
case ')':
if(pop()=='(')
printf("%d\tOK\n",i);
else
printf("%d\tERR\n",i);
break;
case '}':
if(pop()=='{')
printf("%d\tOK\n",i);
else
printf("%d\tERR\n",i);
break;
default:
break;
}
i++;
}
}
int main()
{
char *s=getLine();//取得一行字符串
findError(s);
return 0;
}