Suma de Matrices y Vectores en Lenguaje C: Código y Explicación

Clasificado en Matemáticas

Escrito el en español con un tamaño de 3,95 KB

Implementación de Suma de Matrices en C

Este programa permite realizar la suma de dos matrices de dimensiones dinámicas definidas por el usuario. A continuación, se presenta el código corregido y estructurado:

#include <stdio.h>
#include <stdlib.h>

int main() {
    int i, j, filas, columnas;
    
    printf("\nEste programa suma dos matrices e imprime el resultado");
    printf("\nDame el número de filas: ");
    scanf("%i", &filas);
    printf("\nDame el número de columnas: ");
    scanf("%i", &columnas);
    
    // Declaración de matrices
    int A[filas][columnas], B[filas][columnas], suma[filas][columnas];
    
    printf("\nValores de la matriz A");
    for(i = 0; i < filas; i++) {
        for(j = 0; j < columnas; j++) {
            printf("\nDame el valor de la celda %i,%i: ", i, j);
            scanf("%i", &A[i][j]);
        }
    }
    
    printf("\nValores de la matriz B");
    for(i = 0; i < filas; i++) {
        for(j = 0; j < columnas; j++) {
            printf("\nDame el valor de la celda %i,%i: ", i, j);
            scanf("%i", &B[i][j]);
        }
    }
    
    // Operación de suma
    printf("\nSuma de matrices");
    for(i = 0; i < filas; i++) {
        for(j = 0; j < columnas; j++) {
            suma[i][j] = A[i][j] + B[i][j];
        }
    }
    
    printf("\nResultado de la suma");
    for(i = 0; i < filas; i++) {
        for(j = 0; j < columnas; j++) {
            printf("\n %i", suma[i][j]);
        }
        system("cls");
    }
    
    // Impresión de resultados finales
    printf("\nMatriz A:\n");
    for(i = 0; i < filas; i++) {
        for(j = 0; j < columnas; j++) {
            printf("%i ", A[i][j]);
        }
        printf("\n");
    }
    
    printf("\nMatriz B:\n");
    for(i = 0; i < filas; i++) {
        for(j = 0; j < columnas; j++) {
            printf("%i ", B[i][j]);
        }
        printf("\n");
    }
    
    printf("\nMatriz Suma:\n");
    for(i = 0; i < filas; i++) {
        for(j = 0; j < columnas; j++) {
            printf("%i ", suma[i][j]);
        }
        printf("\n");
    }
    
    return 0;
}

Conceptos clave aplicados:

  • Arreglos bidimensionales: Estructuras que almacenan datos en formato de tabla (filas y columnas).
  • Bucles anidados: Uso de for para recorrer cada posición de la matriz.
  • Entrada/Salida: Uso de printf y scanf para interactuar con el usuario.

Suma de Vectores en Lenguaje C

En este ejemplo, trabajamos con vectores (arreglos unidimensionales) de tamaño fijo para realizar una suma aritmética simple entre sus elementos.

#include <stdio.h>

int main() {
    int i, V1[5], V2[5], V3[5];
    
    printf("\nEste programa suma dos vectores");
    
    printf("\nIntroduzca los datos del vector 1");
    for (i = 0; i <= 4; i++) {
        printf("\nDame el valor %i: ", i);
        scanf("%i", &V1[i]);
    }
    
    printf("\nIntroduzca los datos del vector 2");
    for (i = 0; i <= 4; i++) {
        printf("\nDame el valor %i: ", i);
        scanf("%i", &V2[i]);
    }
    
    // Cálculo de la suma de vectores
    for (i = 0; i <= 4; i++) {
        V3[i] = V1[i] + V2[i];
    }
    
    // Mostrar resultados
    printf("\nVector 1: ");
    for (i = 0; i <= 4; i++) {
        printf("%i ", V1[i]);
    }
    
    printf("\nVector 2: ");
    for (i = 0; i <= 4; i++) {
        printf("%i ", V2[i]);
    }
    
    printf("\nVector 3 (Resultado): ");
    for (i = 0; i <= 4; i++) {
        printf("%i ", V3[i]);
    }
    
    return 0;
}

Diferencias principales:

A diferencia de las matrices, los vectores solo requieren un índice para acceder a sus elementos, lo que simplifica la estructura de los bucles de control.

Entradas relacionadas: