Lectura de Dimensiones y Elementos
En este paso, aprenderás a leer las dimensiones y los elementos de las matrices para la multiplicación de matrices en C. Crearemos un programa que permita a los usuarios introducir el tamaño y los valores de dos matrices.
Primero, creemos un nuevo archivo C para nuestro programa de multiplicación de matrices:
cd ~/project
nano matrix_multiply.c
Ahora, agrega el siguiente código para leer las dimensiones de la matriz:
#include <stdio.h>
#define MAX_SIZE 100
int main() {
int filas1, columnas1, filas2, columnas2;
// Leer dimensiones de la primera matriz
printf("Ingrese las dimensiones de la primera matriz (filas columnas): ");
scanf("%d %d", &filas1, &columnas1);
// Leer dimensiones de la segunda matriz
printf("Ingrese las dimensiones de la segunda matriz (filas columnas): ");
scanf("%d %d", &filas2, &columnas2);
// Verificar si las matrices se pueden multiplicar
if (columnas1 != filas2) {
printf("¡La multiplicación de matrices no es posible!\n");
return 1;
}
printf("Las dimensiones de las matrices son válidas para la multiplicación.\n");
return 0;
}
Compila y ejecuta el programa:
gcc matrix_multiply.c -o matrix_multiply
./matrix_multiply
Salida de ejemplo:
Ingrese las dimensiones de la primera matriz (filas columnas): 2 3
Ingrese las dimensiones de la segunda matriz (filas columnas): 3 2
Las dimensiones de las matrices son válidas para la multiplicación.
Desglose del código:
- Definimos
MAX_SIZE como 100 para limitar las dimensiones de las matrices.
scanf() se utiliza para leer las dimensiones de la matriz desde la entrada del usuario.
- Verificamos si la multiplicación de matrices es posible comparando las columnas de la primera matriz con las filas de la segunda matriz.
- Si las dimensiones no son compatibles, el programa imprime un mensaje de error.
Ahora, modifiquemos el código para leer los elementos de la matriz:
#include <stdio.h>
#define MAX_SIZE 100
int main() {
int filas1, columnas1, filas2, columnas2;
int matriz1[MAX_SIZE][MAX_SIZE];
int matriz2[MAX_SIZE][MAX_SIZE];
// Leer dimensiones de la primera matriz
printf("Ingrese las dimensiones de la primera matriz (filas columnas): ");
scanf("%d %d", &filas1, &columnas1);
// Leer dimensiones de la segunda matriz
printf("Ingrese las dimensiones de la segunda matriz (filas columnas): ");
scanf("%d %d", &filas2, &columnas2);
// Verificar si las matrices se pueden multiplicar
if (columnas1 != filas2) {
printf("¡La multiplicación de matrices no es posible!\n");
return 1;
}
// Leer elementos de la primera matriz
printf("Ingrese los elementos de la primera matriz:\n");
for (int i = 0; i < filas1; i++) {
for (int j = 0; j < columnas1; j++) {
printf("Ingrese el elemento [%d][%d]: ", i, j);
scanf("%d", &matriz1[i][j]);
}
}
// Leer elementos de la segunda matriz
printf("Ingrese los elementos de la segunda matriz:\n");
for (int i = 0; i < filas2; i++) {
for (int j = 0; j < columnas2; j++) {
printf("Ingrese el elemento [%d][%d]: ", i, j);
scanf("%d", &matriz2[i][j]);
}
}
printf("Matrices leídas correctamente.\n");
return 0;
}
Compila y ejecuta el programa:
gcc matrix_multiply.c -o matrix_multiply
./matrix_multiply
Salida de ejemplo:
Ingrese las dimensiones de la primera matriz (filas columnas): 2 3
Ingrese las dimensiones de la segunda matriz (filas columnas): 3 2
Ingrese los elementos de la primera matriz:
Ingrese el elemento [0][0]: 1
Ingrese el elemento [0][1]: 2
Ingrese el elemento [0][2]: 3
Ingrese el elemento [1][0]: 4
Ingrese el elemento [1][1]: 5
Ingrese el elemento [1][2]: 6
Ingrese los elementos de la segunda matriz:
Ingrese el elemento [0][0]: 7
Ingrese el elemento [0][1]: 8
Ingrese el elemento [1][0]: 9
Ingrese el elemento [1][1]: 10
Ingrese el elemento [2][0]: 11
Ingrese el elemento [2][1]: 12
Matrices leídas correctamente.