Este sitio web usa cookies de terceros para analizar el tráfico y personalizar los anuncios. Si no está de acuerdo, abandone el sitio y no siga navegando por él. ×


5.3. Tablas bidimensionales

Podemos declarar tablas de dos o más dimensiones. Por ejemplo, si queremos guardar datos de dos grupos de alumnos, cada uno de los cuales tiene 20 alumnos, tenemos dos opciones:

> Podemos usar int datosAlumnos[40] y entonces debemos recordar que los 20 primeros datos corresponden realmente a un grupo de alumnos y los 20 siguientes a otro grupo.
> O bien podemos emplear int datosAlumnos[2][20] y entonces sabemos que los datos de la forma datosAlumnos[0][i] son los del primer grupo, y los datosAlumnos[1][i] son los del segundo.

En cualquier caso, si queremos indicar valores iniciales, lo haremos entre llaves, igual que si fuera una tabla de una única dimensión. Vamos a verlo con un ejemplo de su uso:

/*---------------------------*/
/*  Ejemplo en C nº 48:      */
/*  C048.C                   */
/*                           */
/*  Array de dos dimensiones */
/*                           */
/*  Curso de C,              */
/*    Nacho Cabanes          */
/*---------------------------*/

#include 


int main() 
{      
  int notas[2][10] = 
     { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
       11, 12, 13, 14, 15, 16, 17, 18, 19, 20 };

  printf("La nota del tercer alumno del grupos 1 es %d",
    notas[0][2]);
            
  return 0;
}

Este tipo de tablas son las que se usan también para guardar matrices, cuando hay que resolver problemas matemáticos más complejos.

También podemos usar arrays de dos dimensiones si queremos guardar una lista de cadenas de texto, como en este ejemplo:

/*---------------------------*/
/*  Ejemplo en C nº 49:      */
/*  C049.C                   */
/*                           */
/*  Array de cadenas         */
/*                           */
/*  Curso de C,              */
/*    Nacho Cabanes          */
/*---------------------------*/

#include 

int main() 
{      
  char mensajeError[5][80] = {
    "Fichero no encontrado",
    "El fichero no se puede abrir para escritura",
    "El fichero está vacío",
    "El fichero contiene datos de tipo incorrecto"
    "El fichero está siendo usado"
    };

  printf("El segundo mensaje de error es: %s",
    mensajeError[1]);
  printf("La primera letra del tercer mensaje de error es: %c",
    mensajeError[2][0]);
          
  return 0;
}

Ejercicios propuestos :