Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

Dominando arrays multidimensionales en C: 2D y 3D explicados

Arrays multidimensionales en C

En este tutorial, aprenderá a trabajar con arrays multidimensionales (arrays bidimensionales y tridimensionales) con la ayuda de ejemplos.

En programación C, puede crear un array de arrays. Estos arrays se conocen como arrays multidimensionales. Por ejemplo,

float x[3][4];

Aquí, x es un array bidimensional (2d). El array puede contener 12 elementos. Puede pensar en el array como una tabla con 3 filas y cada fila tiene 4 columnas.

Dominando arrays multidimensionales en C: 2D y 3D explicados

De manera similar, puede declarar un array tridimensional (3d). Por ejemplo,

float y[2][4][3];

Aquí, el array y puede contener 24 elementos.


Inicializar un array multidimensional

Aquí es cómo puede inicializar arrays bidimensionales y tridimensionales:


Inicialización de un array 2d

// Diferentes formas de inicializar array bidimensional
int c[2][3] = {{1, 3, 0}, {-1, 5, 9}};
int c[][3] = {{1, 3, 0}, {-1, 5, 9}};
int c[2][3] = {1, 3, 0, -1, 5, 9};

Inicialización de un array 3d

Puede inicializar un array tridimensional de manera similar a un array bidimensional. Aquí hay un ejemplo,

int prueba[2][3][4] = {
    {{3, 4, 2, 3}, {0, -3, 9, 11}, {23, 12, 23, 2}},
    {{13, 4, 56, 3}, {5, 9, 3, 5}, {3, 1, 4, 9}}
};

Ejemplo 1: Array bidimensional para almacenar e imprimir valores

// Programa en C para almacenar temperatura de dos ciudades de una semana y mostrarla.
#include <stdio.h>
const int CIUDAD = 2;
const int SEMANA = 7;
int main() {
    int temperatura[CIUDAD][SEMANA];
    // Usar bucles anidados para almacenar valores en un array 2d
    for (int i = 0; i < CIUDAD; ++i) {
        for (int j = 0; j < SEMANA; ++j) {
            printf("Ciudad %d, Día %d: ", i + 1, j + 1);
            scanf("%d", &temperatura[i][j]);
        }
    }
    printf("\nMostrando valores: \n\n");
    // Usar bucles anidados para mostrar valores de un array 2d
    for (int i = 0; i < CIUDAD; ++i) {
        for (int j = 0; j < SEMANA; ++j) {
            printf("Ciudad %d, Día %d = %d\n", i + 1, j + 1, temperatura[i][j]);
        }
    }
    return 0;
}

Salida

Ciudad 1, Día 1: 33
Ciudad 1, Día 2: 34
Ciudad 1, Día 3: 35
Ciudad 1, Día 4: 33
Ciudad 1, Día 5: 32
Ciudad 1, Día 6: 31
Ciudad 1, Día 7: 30
Ciudad 2, Día 1: 23
Ciudad 2, Día 2: 22
Ciudad 2, Día 3: 21
Ciudad 2, Día 4: 24
Ciudad 2, Día 5: 22
Ciudad 2, Día 6: 25
Ciudad 2, Día 7: 26
Mostrando valores:
Ciudad 1, Día 1 = 33
Ciudad 1, Día 2 = 34
Ciudad 1, Día 3 = 35
Ciudad 1, Día 4 = 33
Ciudad 1, Día 5 = 32
Ciudad 1, Día 6 = 31
Ciudad 1, Día 7 = 30
Ciudad 2, Día 1 = 23
Ciudad 2, Día 2 = 22
Ciudad 2, Día 3 = 21
Ciudad 2, Día 4 = 24
Ciudad 2, Día 5 = 22
Ciudad 2, Día 6 = 25
Ciudad 2, Día 7 = 26

Ejemplo 2: Suma de dos matrices

// Programa en C para encontrar la suma de dos matrices de orden 2*2
#include <stdio.h>
int main() {
    float a[2][2], b[2][2], resultado[2][2];
    // Tomar entrada usando bucles for anidados
    printf("Ingrese elementos de la 1ra matriz\n");
    for (int i = 0; i < 2; ++i)
        for (int j = 0; j < 2; ++j) {
            printf("Ingrese a%d%d: ", i + 1, j + 1);
            scanf("%f", &a[i][j]);
        }
    // Tomar entrada usando bucles for anidados
    printf("Ingrese elementos de la 2da matriz\n");
    for (int i = 0; i < 2; ++i)
        for (int j = 0; j < 2; ++j) {
            printf("Ingrese b%d%d: ", i + 1, j + 1);
            scanf("%f", &b[i][j]);
        }
    // sumar elementos correspondientes de dos arrays
    for (int i = 0; i < 2; ++i)
        for (int j = 0; j < 2; ++j) {
            resultado[i][j] = a[i][j] + b[i][j];
        }
    // Mostrar la suma
    printf("\nSuma de Matriz:");
    for (int i = 0; i < 2; ++i)
        for (int j = 0; j < 2; ++j) {
            printf("%.1f\t", resultado[i][j]);
            if (j == 1) printf("\n");
        }
    return 0;
}

Salida

Ingrese elementos de la 1ra matriz
Ingrese a11: 2; Ingrese a12: 0.5; Ingrese a21: -1.1; Ingrese a22: 2;
Ingrese elementos de la 2da matriz
Ingrese b11: 0.2; Ingrese b12: 0; Ingrese b21: 0.23; Ingrese b22: 23;
Suma de Matriz:
2.2     0.5
-0.9    25.0

Ejemplo 3: Array tridimensional

// Programa en C para almacenar e imprimir 12 valores ingresados por el usuario
#include <stdio.h>
int main() {
    int prueba[2][3][2];
    printf("Ingrese 12 valores: \n");
    for (int i = 0; i < 2; ++i) {
        for (int j = 0; j < 3; ++j) {
            for (int k = 0; k < 2; ++k) {
                scanf("%d", &prueba[i][j][k]);
            }
        }
    }
    // Imprimir valores con índice apropiado.
    printf("\nMostrando valores:\n");
    for (int i = 0; i < 2; ++i) {
        for (int j = 0; j < 3; ++j) {
            for (int k = 0; k < 2; ++k) {
                printf("prueba[%d][%d][%d] = %d\n", i, j, k, prueba[i][j][k]);
            }
        }
    }
    return 0;
}

Salida

Ingrese 12 valores: 1 2 3 4 5 6 7 8 9 10 11 12
Mostrando valores:
prueba[0][0][0] = 1
prueba[0][0][1] = 2
prueba[0][1][0] = 3
prueba[0][1][1] = 4
prueba[0][2][0] = 5
prueba[0][2][1] = 6
prueba[1][0][0] = 7
prueba[1][0][1] = 8
prueba[1][1][0] = 9
prueba[1][1][1] = 10
prueba[1][2][0] = 11
prueba[1][2][1] = 12

Lenguaje C

  1. Ciudades inteligentes: Entregando beneficios tangibles con soluciones de conectividad probadas
  2. Por qué importan los datos de la ciudad: convertir insights en innovación urbana
  3. Construir Ciudades Inteligentes Centradas en el Humano: Un Plan Estratégico
  4. 5 pasos para construir ciudades más inteligentes y seguras
  5. Dominando arrays en C#: Declaración, inicialización y operaciones
  6. Cómo pasar arrays 1D y 2D a funciones en C – Guía práctica
  7. Entendiendo la relación entre arrays y punteros en C
  8. Arrays en C++: Declaración, inicialización y técnicas con punteros
  9. Asignación dinámica de arrays en C++: Guía práctica con ejemplos de código
  10. MATLAB: Dominando Arrays Multidimensionales y Especiales
  11. Técnicas de Copia de Arrays en Java: Guía Completa