括号匹配问题

来源:互联网 发布:九九算法算生男女公式 编辑:程序博客网 时间:2024/05/20 19:48

对输入的括号进行检查看是否合格,像(()())为合格的,而())就是不合格的

代码:

#include<stdio.h>int main(){int a=0,b=0,flag=1;char s;while (s!='\n'){s=getchar();if (s=='(')  a++;if (s==')')  b++;if (b>a)  //右括号比左括号多,匹配失败{flag=0;printf("error");break; } }if (flag){if (a==b)  printf("yes");else  printf("error"); //也就是当a>b, 左括号比右括号多的时候 }return 0;}

对3种括号进行判断 {[][]()}合格, {}{}[(]) 不合格

代码:

#include<stdio.h>int main(){int i=1;char s;static charc[100];while (s!='\n'){s=getchar();switch (s){case '(': c[i++]=')'; break;case '[': c[i++]=']'; break;case '{': c[i++]='}'; break;case ')':    case ']':    case '}':if (c[--i]!=s)    {    printf("error");  return 0;}}}if (i==1)  printf("yes");else  printf("error");}


0 0