Está en la página 1de 2

#include <iostream>

#include <stdlib.h>

using namespace std;

void Recibir_matriz(int**, int, int);


void impimir_matriz(int**, int, int);
void multiplicar(int**, int**,int**, int, int, int, int);

int main()
{
int fil1, col1, fil2, col2;
do {
cout << "Ingrese numero de filas para la matriz A: ";
cin >> fil1;
} while (fil1 <= 0);
do {
cout << "Ingrese numero de colunmas para la matriz A: ";
cin >> col1;
} while (col1 <= 0);
do {
cout << "Ingrese numero de filas para la matriz B: ";
cin >> fil2;
} while (fil2 <= 0);
do {
cout << "Ingrese numero de colunmas para la matriz B: ";
cin >> col2;
} while (col2 <= 0);

int** matrA = new int* [fil1];


for (int i = 0; i < fil1; i++) {
matrA[i] = new int[col1];
}
int** matrB = new int* [fil2];
for (int j = 0; j < fil2; j++) {
matrB[j] = new int[col2];
}
int** matrC = new int* [col1]; // el numero de filas de la matriz C es igual
al numero de columnas de la matriz A
for (int i = 0; i < fil2; i++) {
matrC[i] = new int[col2]; // el numero de columnas de la matriz C es
igual es igual a las columnas de B
}
cout << "\nIngrese matriz A: \n";
Recibir_matriz(matrA, fil1, col1);
cout << "\nMatriz A: \n";
impimir_matriz(matrA, fil1, col1);
cout << "\nIngrese matriz B: \n";
Recibir_matriz(matrB, fil2, col2);
cout << "\nMatriz B: \n";
impimir_matriz(matrB, fil2, col2);
multiplicar(matrA, matrB, matrC, fil1, col1, fil2, col2);

return 0;
system("pause");
}
void Recibir_matriz(int**matr, int fil, int col) {
for (int i = 0; i < fil; i++) {
for (int j = 0; j < col; j++) {
cout << "M[" << i + 1 << "][" << j + 1 << "]: ";
cin >> matr[i][j];
}
}
}
void impimir_matriz(int**matr, int fil, int col) {
for (int i = 0; i < fil; i++) {
cout << "| ";
for (int j = 0; j < col; j++) {
cout << matr[i][j] << " ";
}
cout << "|" << endl;
}
}
void multiplicar(int**matrA, int **matrB,int **matrC, int fil1, int col1, int fil2,
int col2) {
if (col1 != fil2) {
cout << "\nNo se puede realizar la operacion,numero de columnas de A !=
filas de B" << endl;
}
else {
for (int i = 0; i < fil1; i++) {
for (int j = 0; j < col2; j++) {
matrC[i][j] = 0;
for (int k = 0; k < col1; k++) {
matrC[i][j] = matrC[i][j] + matrA[i][k] * matrB[k]
[j];
}
}
}
cout << "\n A x B es igual a : \n";
impimir_matriz(matrC, col1, col2);
}
}

También podría gustarte