#include <iostream>
using namespace std;
void leerMatriz( int **M, int fil, int col );
void multiplicacionMatrices();
void imprimirMatriz( int **M, int fil, int col );
int main()
{
int filA, colA, filB, colB;
cout << "\n EL NUMERO DE COLUMNAS DE LA MATRIZ A"
<< "\nDEBE COINCIDIR CON EL DE FILAS DE LA MATRIZ B\n";
cout << "\nDimension de la matriz A:";
cout << "\nFilas de la matriz: "; cin >> filA;
cout << "Columnas de la matriz: "; cin >> colA;
int** A = new int*[filA];
for( int i = 0; i < filA; i++ )
A[i] = new int[colA];
leerMatriz( A, filA, colA );
cout << "\nDimension de la matriz B:";
cout << "\nFilas de la matriz: "; cin >> filB;
cout << "Columnas de la matriz: "; cin >> colB;
int** B = new int*[filB];
for( int i = 0; i < filB; i++ )
B[i] = new int[colB];
leerMatriz( B, filB, colB );
int** C = new int*[filA];
for( int i = 0; i < filA; i++ )
C[i] = new int[colA];
if( colA == filB ){
for( int i = 0; i < filA; ++i ){
for( int j = 0; j < colB; ++j ){
C[i][j] = 0;
for( int z = 0; z < colA; ++z )
C[i][j] += A[i][z] * B[z][j];
}
}
cout << "\nMatriz A:\n";
imprimirMatriz( A, filA, colA );
cout << "\nMatriz B:\n";
imprimirMatriz( B, filB, colB );
cout << "\nMultiplicacion de las matrices (A*B):\n";
imprimirMatriz( C, filA, colB );
}else
cout << "\n NO SE PUEDEN MULTIPLICAR"
<< "\n EL NUMERO DE COLUMNAS DE LA MATRIZ A"
<< "\nDEBE COINCIDIR CON EL DE FILAS DE LA MATRZI B";
cout << endl;
return 0;
}
void leerMatriz( int **M, int fil, int col )
{
cout << "\nRellenar la matriz:\n";
for( int i = 0; i < fil; i++ ){
for( int j = 0; j < col; j++ ){
cout << "Matriz[" << i << "][" << j << "]: ";
cin >> M[i][j];
}
}
}
void imprimirMatriz( int **M, int fil, int col )
{
for( int i = 0; i < fil; i++ ){
cout << "\n| ";
for( int j = 0; j < col; j++ )
cout << M[i][j] << " ";
cout << " |";
}
cout << endl;
}