//////
Por otra parte, si me explicaran porqué " el FOR de k " sólo tiene en cuenta las Columnas de A;
¿ No debería de haber a continuación " un FOR de k que recorra las Filas de " B " ????
Lo digo porque:
"i" ( Y ) "j" recorren las Filas y Columnas de " C " ........ y ...
"k" realiza cada Operación recorriendo TANTO las Columnas de " A " ....
...... PERO TAMBIÉN las Filas de " B " !
El Comentario al lado " del FOR de k " lo tomé del razonamiento de quien explicó - súper didácticamente - el Código, pero, " que haya un único FOR de k " no lo entiendo
Código
#include <iostream> using namespace std; int main( ){ short int fa, ca, fb, cb, i, j, k; cout << "Ingrese Nro de Filas de la 1er Matriz: "; cin >> fa; cout << "Ingrese Nro de Columnas de la 1er Matriz: "; cin >> ca; cout << "Ingrese Nro de Filas de la 2da Matriz: "; cin >> fb; cout << "Ingrese Nro de Columnas de la 2da Matriz: "; cin >> cb; // DECLARACIÓN DE LAS TRES MATRICES int A[fa][ca]; int B[fb][cb]; int C[fa][cb]; if ( ca == fb ) { // Si se cumple la Condición " 1 ) " del Producto e/ 2 Matrices se procede ... // Ingresar Valores de la matriz A cout << "\n\tIntroduzca los valores de la 1er Matriz: " << endl; for ( i = 0; i < fa; i++ ) // BUCLE para las Filas " i " de A // " i < fa " Porque fa va desde fa[0] hasta fa[\0] x lo q a todas las Filas de A le " sobrará fa[\0] " for ( j = 0; j < ca; j++ ) { // BUCLE para las Columnas " j " de A // " j < ca " Porque ca va desde ca[0] hasta ca[\0] x lo q a todas las Columnas de A le " sobrará ca[\0] " cout << "A["<<i<<"]["<<j<<"] :"; cin >> A[i][j]; } // Ingresar Valores de la matriz B cout << "\n\tIntroduzca los valores de la 2da Matriz: " << endl; for ( i = 0; i < fb; i++ ) // BUCLE para las Filas " i " de B for ( j = 0; j < cb; j++ ) { // BUCLE para las Columnas " j " de B cout << "B["<<i<<"]["<<j<<"] :"; cin >> B[i][j]; } // Cálculo de la Matriz C = A * B ( C conformada a partir de Filas de A ( Y ) Columnas de B for ( i = 0; i < fa; i++ ) // BUCLE para las Filas " i " de A for ( j = 0; j < cb; j++ ) { // BUCLE para las Columnas " j " de B C[i][j] = 0; for ( k = 0; k < ca; k++ ) // PORQUÉ ????? sólo Col de A ...... y las Filas de B ? ; no era que k recorre ambas ?? C [i][j] = C [i][j] + ( A [i][k] * B [k][j] ); } cout << endl; for ( i = 0; i < fa; i++ ) // BUCLE para las Filas " i " de A for ( j = 0; j < cb; j++ ) // BUCLE para las Columnas " j " de B cout << C[i][j] << " "; } else cout << "\n\tLA MULTIPLICACIÓN ENTRE AMBAS MATRICES NO SE PUEDE REALIZAR" << endl; return 0; }
Gracias x leer el mensaje.
MOD: Modificado el asunto del tema. No escribir todo en mayúsculas.
MOD: Indentar el código para que sea legible.