标题:检测括号配对
取消只看楼主
Nekomimi
Rank: 2
等 级:论坛游民
帖 子:80
专家分:15
注 册:2006-11-21
结帖率:100%
 问题点数:0 回复次数:1 
检测括号配对
#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},依然判断正确。
请问程序到底错在哪里呀。。
搜索更多相关主题的帖子: 配对 括号 检测 
2010-01-06 19:54
Nekomimi
Rank: 2
等 级:论坛游民
帖 子:80
专家分:15
注 册:2006-11-21
得分:0 
没人回答。。。
继续顶起。。。等待。。。
2010-01-07 19:12



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-295145-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 2.217372 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved