Cómo Crear y Sumar Matrices en Lenguaje C con Menú Interactivo

Informática y Telecomunicaciones3,95 KB

Gestión y Suma de Elementos de una Matriz en Lenguaje C

El siguiente programa en lenguaje C implementa un menú interactivo por consola que permite al usuario ingresar las dimensiones y los valores de una matriz bidimensional de enteros (hasta un tamaño máximo definido por MAX) y calcular la suma acumulada de todos sus componentes.

Estructura del Código Fuente

El algoritmo se organiza mediante las siguientes operaciones fundamentales:

  • Carga de datos: Solicita la cantidad de filas (n) y columnas (m), recorriendo cada celda mediante dos bucles for anidados.
  • Cálculo de la sumatoria: Reinicializa el acumulador suma a cero y recorre la matriz sumando cada elemento matriz[i][j].
  • Control del flujo: Utiliza una estructura iterativa do-while para desplegar el menú hasta que el usuario decida salir (opción 3).

Código Fuente (Primer Bloque)

#include <stdio.h>

#define MAX 10

int main() {
    int opcion;
    int matriz[MAX][MAX];
    int n = 0, m = 0;
    int i, j;
    int suma;

    do {
        printf("\nMenu\n");
        printf("1.- Cargar una matriz de enteros\n");
        printf("2.- Sumar los elementos de una matriz\n");
        printf("3.- Salir\n");
        printf("Elige una opcion: ");
        scanf("%d", &opcion);

        if (opcion == 1) {
            printf("Introduce filas: ");
            scanf("%d", &n);
            printf("Introduce columnas: ");
            scanf("%d", &m);

            for (i = 0; i < n; i++) {
                for (j = 0; j < m; j++) {
                    printf("Elemento [%d][%d]: ", i, j);
                    scanf("%d", &matriz[i][j]);
                }
            }
        }

        if (opcion == 2) {
            suma = 0;
            for (i = 0; i < n; i++) {
                for (j = 0; j < m; j++) {
                    suma = suma + matriz[i][j];
                }
            }
            printf("Suma = %d\n", suma);
        }

        if (opcion == 3) {
            printf("ADIOS\n");
        }

    } while (opcion != 3);

    return 0;
}

Código Fuente (Segundo Bloque Conservado)

#include <stdio.h>

#define MAX 10

int main() {
    int opcion;
    int matriz[MAX][MAX];
    int n = 0, m = 0;
    int i, j;
    int suma;

    do {
        printf("\nMenu\n");
        printf("1.- Cargar una matriz de enteros\n");
        printf("2.- Sumar los elementos de una matriz\n");
        printf("3.- Salir\n");
        printf("Elige una opcion: ");
        scanf("%d", &opcion);

        if (opcion == 1) {
            printf("Introduce filas: ");
            scanf("%d", &n);
            printf("Introduce columnas: ");
            scanf("%d", &m);

            for (i = 0; i < n; i++) {
                for (j = 0; j < m; j++) {
                    printf("Elemento [%d][%d]: ", i, j);
                    scanf("%d", &matriz[i][j]);
                }
            }
        }

        if (opcion == 2) {
            suma = 0;
            for (i = 0; i < n; i++) {
                for (j = 0; j < m; j++) {
                    suma = suma + matriz[i][j];
                }
            }
            printf("Suma = %d\n", suma);
        }

        if (opcion == 3) {
            printf("ADIOS\n");
        }

    } while (opcion != 3);

    return 0;
}

Recomendaciones de Buenas Prácticas

  • Validación de límites: Verificar siempre que los valores ingresados para n y m sean mayores que 0 y menores o iguales a la constante MAX (10).
  • Uso de switch-case: Reemplazar las sentencias if sucesivas por una estructura switch (opcion) para optimizar la legibilidad del menú.

Descargar

PDF Word HTML