home *** CD-ROM | disk | FTP | other *** search
/ ftp.disi.unige.it / 2015-02-11.ftp.disi.unige.it.tar / ftp.disi.unige.it / pub / .person / CataniaB / teach-act / laboratorio / lab-26-4-99 / ese7-versione-senza-stack.c < prev    next >
C/C++ Source or Header  |  1999-05-25  |  712b  |  45 lines

  1. /* 
  2. * Stringhe con parentesi bilanciate  
  3. */
  4. #include <stdio.h>
  5. #define MAX 100
  6. #define Graffa 0
  7. #define Quadra 1
  8. #define Tonda 2
  9.  
  10. int c[3];
  11.  
  12. main()
  13. {
  14.  char buf[MAX];
  15.  int i;
  16.  
  17.  gets(buf);
  18.  printf("\n echo %s\n ",buf);
  19.  for(i=0;buf[i];i++) 
  20.    switch (buf[i])
  21.     {
  22.      case '[': ++c[Quadra];
  23.               break;
  24.      case ']': --c[Quadra];
  25.               break;
  26.      case '(': ++c[Tonda];
  27.               break;
  28.      case ')': --c[Tonda];
  29.               break;
  30.      case '{': ++c[Graffa];
  31.               break;
  32.      case '}': --c[Graffa];
  33.               break;
  34.      default:;
  35.     }
  36.  for (i=0;i<3;i++) 
  37.    if (c[i])  
  38.      { 
  39.        printf("\nNon bilanciate");
  40.        return(1);
  41.      };  
  42.  printf("\nBilanciate");
  43. }
  44.  
  45.