Advertisement
jacknpoe

GOTOs encadeados (será que precisa?)

Nov 21st, 2013
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.38 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. #define LARG 3
  4.  
  5. int main( void) {
  6.     char a, b, c, d;
  7.     int temp, m[ LARG][ LARG][ LARG][LARG] = {};
  8.  
  9.     printf( "-1 cancela a primeira coluna.\n");
  10.     printf( "-2 cancela a segunda coluna.\n");
  11.     printf( "-3 cancela a terceira coluna.\n");
  12.     printf( "-4 cancela a quarta coluna.\n");
  13.     printf( "-5 cancela as entradas.\n");
  14.     printf( "-6 sai do programa.\n\n");
  15.  
  16.     for( a = 0; a < LARG; a ++ ) {  // FOR a
  17.         for( b = 0; b < LARG; b++ ) {       // FOR b
  18.             for( c = 0; c < LARG; c++ ) {       // FOR c
  19.                 for( d = 0; d < LARG; d++ ) {       // FOR d
  20.                     printf( "M[%d][%d][%d][%d]: ", a, b, c, d);
  21.                     scanf( "%d", &temp);
  22.                     if( temp == -1) continue;       // desnecessário GOTO (cancela atual FOR d)
  23.                     if( temp == -2) break;      // desnecessário GOTO (cancela atual FOR c)
  24.                     if( temp == -3) goto saida1;
  25.                     if( temp == -4) goto saida2;
  26.                     if( temp == -5) goto saida3;
  27.                     if( temp == -6) return 1;       // desnecessário GOTO
  28.                     m[ a][ b][ c][d] = temp;
  29.                 }       // FOR d label desnecessária
  30.             }       // FOR c label desnecessária
  31.             saida1:;        // cancela atual FOR b
  32.         }       // FOR b
  33.         saida2:;        // cancela atual FOR a
  34.     }       // FOR a
  35.     saida3:     // sai de todos os FOR
  36.  
  37.     printf( "\n\n");
  38.  
  39.     for( a = 0; a < LARG; a ++ )
  40.         for( b = 0; b < LARG; b++ )
  41.             for( c = 0; c < LARG; c++ )
  42.                 for( d = 0; d < LARG; d++ )
  43.                     printf( "M[%d][%d][%d][%d]: %d\n", a, b, c, d, m[ a][ b][ c][d]);
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement