Menu
Coddy logo textTech

Arrays multidimensionales

Parte de la sección Fundamentos del Journey de C de Coddy. Lección 56 de 63.

Un array multidimensional es un array de arrays. En C, puedes crear un array 2D (el array multidimensional más común), esencialmente una tabla con filas y columnas.

Declara una matriz 2D:

int matrix[3][4];

Esto crea un arreglo bidimensional con 3 filas y 4 columnas.

Puedes inicializar un arreglo bidimensional al declararlo:

int matrix[3][4] = {
    {1, 2, 3, 4},    // Primera fila
    {5, 6, 7, 8},    // Segunda fila
    {9, 10, 11, 12}  // Tercera fila
};

Para acceder a los elementos de una matriz 2D, usa dos índices:

int value = matrix[1][2];  // Accede a la fila 1, columna 2 (el valor será 7)

Para modificar un elemento en un arreglo 2D:

matrix[0][3] = 100;  // Cambia el elemento en la fila 0, columna 3 a 100

También puedes usar bucles anidados para acceder a todos los elementos de un arreglo bidimensional:

for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 4; j++) {
        printf("%d ", matrix[i][j]);
    }
    printf("\n");  // Nueva línea después de cada fila
}
challenge icon

Desafío

Fácil

Crea una función llamada printDiagonal que reciba una matriz cuadrada bidimensional (donde el número de filas es igual al número de columnas) e imprima los elementos de la diagonal principal (de arriba a la izquierda a abajo a la derecha).

La función debe:

  1. Recibir como parámetros una matriz de enteros y su tamaño.
  2. Imprimir cada elemento de la diagonal principal (donde el índice de la fila es igual al índice de la columna).
  3. Separar cada elemento con un espacio.

Por ejemplo, dada la matriz:

1 2 3 4 5 6 7 8 9

La función debe imprimir: 1 5 9

Pruébalo tú mismo

#include <stdio.h>

// Función para imprimir los elementos de la diagonal de una matriz cuadrada
void printDiagonal(int matrix[][100], int size) {
    // Escribe tu código aquí
    
}

int main() {
    int size;
    scanf("%d", &size);
    
    int matrix[100][100];
    for (int i = 0; i < size; i++) {
        for (int j = 0; j < size; j++) {
            scanf("%d", &matrix[i][j]);
        }
    }
    
    printDiagonal(matrix, size);
    
    return 0;
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos

Practica por tu cuenta: Compilador de C online