第5週目の項目3かっこの一致

1516 ワード

/*  
*Copyright (c) 2017,                
*All rights reserved.  
*    :     3        
*      :    
*    :2017 10 7   
*     :v1.0  
*    :            :   、       。
                 ,                 
              。  ,  2+(3+4)*[2+{[3]}]-8,    
             ;  2+(3+4*[2)+{[3]}-8,      。
             :(1)       ,      ,    
             ,     。   ,  ,        
            ,      。            ,  
           __________,           。
          (2)                 ,    
                 ,      。
*/  

プログラムは次のとおりです(シーケンススタックアルゴリズムライブラリが使用されます).
#include 
#include "sqstack.h"
int main()
{
    char c;
    char st[50];
    int d=1, i;
    SqStack *s;
    InitStack(s);
    printf("      :");
    scanf("%s", st);
    for(i=0; st[i]!='\0'&&d; i++)
    {
        switch(st[i])
        {
        case'(':
        case'[':
        case'{':
            Push(s, st[i]);
            break;
        case')':
            Pop(s, c);
            if(c!='(') d=0;
            break;
        case']':
            Pop(s, c);
            if(c!='[') d=0;
            break;
        case'}':
            Pop(s,c);
            if(c!='{') d=0;
            break;
        }
    }
    if(StackEmpty(s)&&d==1)
        printf("    !!
"); else printf(" !!
"); return 0; }