Arreglos multidimensionales
Parte de la sección Fundamentals 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 bidimensional (el array multidimensional más común), esencialmente una tabla con filas y columnas.
Declara un array bidimensional:
int matrix[3][4];Esto crea un arreglo bidimensional con 3 filas y 4 columnas.
Puedes inicializar un array 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 un array bidimensional, utiliza dos índices:
int value = matrix[1][2]; // Accede a la fila 1, columna 2 (el valor será 7)Para modificar un elemento en un array 2D:
matrix[0][3] = 100; // Cambia el elemento en la fila 0, columna 3 a 100También puedes usar bucles anidados para acceder a todos los elementos de un array 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
}Desafío
FácilCrea una función llamada printDiagonal que reciba un arreglo bidimensional cuadrado (donde el número de filas es igual al número de columnas) e imprima los elementos de la diagonal principal (desde la parte superior izquierda hasta la inferior derecha).
La función debe:
- Recibir un arreglo de enteros y su tamaño como parámetros.
- Imprimir cada elemento de la diagonal principal (donde el índice de fila es igual al índice de columna).
- Separar cada elemento con un espacio.
Por ejemplo, dado el arreglo:
1 2 3 4 5 6 7 8 9
La función debe imprimir: 1 5 9
Hoja de referencia
Un array multidimensional es un array de arrays. En C, puedes crear un array 2D con filas y columnas.
Declarar un array 2D:
int matrix[3][4];Inicializar un array 2D al declarar:
int matrix[3][4] = {
{1, 2, 3, 4}, // Primera fila
{5, 6, 7, 8}, // Segunda fila
{9, 10, 11, 12} // Tercera fila
};Acceder a los elementos usando dos índices:
int value = matrix[1][2]; // Accede a la fila 1, columna 2 (el valor será 7)Modificar un elemento:
matrix[0][3] = 100; // Cambia el elemento en la fila 0, columna 3 a 100Usar bucles anidados para acceder a todos los elementos:
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
}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;
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentals
2Variables
Tipos de datosEnterosFloat - DoubleCaracteresBooleanosConstantesConceptos básicos de printfReglas para nombrar variablesConversión de tipos Parte 1Conversión de tipos Parte 2Desafío de repaso3Operadores
Operadores aritméticosOperador de móduloIncremento/DecrementoOperadores de asignaciónOperadores relacionalesOperadores lógicos - Parte 1Operadores lógicos - Parte 2Operadores lógicos - Parte 3Desafío de repaso