/*
括号匹配问题:判断一个算数表达式中的括号有没有正确匹配,如多一个左括号或者右括号
*/
#include<stdio.h>
int Match(char *str)
{
char s[100];
int i,top = -1;
for(i = 0;str[i] != '\0';i++)
{
if(str[i] == ')')
{
if(top > -1)
top--;
else
return -1;
}else if(str[i] == '(' )
s[++top] = str[i];
}
if(top == -1)
return 0;
else
return 1;
}
int main()
{
char str[100];
int k;
printf("请输入一个算数表达式:");
scanf("%s",str);
k = Match(str);
if(k == 0)
printf("匹配正确\n");
else if(k == 1)
printf("多左括号\n");
else
printf("多右括号\n");
return 0;
}