Está en la página 1de 5

#include<iostream>

#include<conio.h>

#include<windows.h>

using namespace std;

const int MF = 10;

const int MC = 10;

void mM(int A[MF][MC], int B[MC][MF], int C[MF][MF], int filA, int colA, int filB, int colB);

void oC(int matriz[MF][MC], int fil, int col);

void M_M(int matriz[MF][MC], int f, int c);

int main() {

int opcion;

int A[MF][MC], B[MC][MF], C[MF][MF];

int filA, colA, filB, colB;

do {

system("cls");

cout << "Seleccione una opcion:\n";


cout << "1. Realizar multiplicacion de matrices\n";

cout << "2. Ordenar por columnas los elementos de un arreglo bidimensional\n";
cout << "3. Salir\n";

cout << "Opcion: ";


cin >> opcion;

system("cls");

switch (opcion) {

case 1:
cout << "Ingrese el numero de filas de la matriz A: ";
cin >> filA;

cout << "Ingrese el numero de columnas de la matriz A: ";

cin >> colA;

cout << "Ingrese los elementos de la matriz A:\n";

for (int i = 0; i < filA; ++i) {

for (int j = 0; j < colA; ++j) {

cout << "A[" << i << "][" << j << "]: ";

cin >> A[i][j];

cout << "Ingrese el numero de filas de la matriz B: ";

cin >> filB;

cout << "Ingrese el numero de columnas de la matriz B: ";

cin >>colB;

cout << "Ingrese los elementos de la matriz B:\n";

for (int i = 0; i < filB; ++i) {

for (int j = 0; j < colB; ++j) {

cout << "B[" << i << "][" << j << "]: ";
cin >> B[i][j];

}
}

if (colA == filB) {

mM(A, B, C, filA, colA, filB, colB);

cout << "El resultado de la multiplicacion de las matrices es:\n";

M_M(C, filA, colB);


} else {
cout << "No se pueden multiplicar las matrices. Las columnas de A no son iguales a las
filas de B.\n";

break;

case 2:

int matrizOriginal[MF][MC];

int filas, columnas;

cout << "Ingrese el numero de filas de la matriz: ";

cin >> filas;

cout << "Ingrese el numero de columnas de la matriz: ";

cin >> columnas;

cout << "Ingrese los elementos de la matriz:\n";

for (int i = 0; i < filas; ++i) {

for (int j = 0; j < columnas; ++j) {


cout << "[" << i << "][" << j << "]: ";

cin >> matrizOriginal[i][j];


}

cout << "Matriz original:\n";

M_M(matrizOriginal, filas, columnas);

oC(matrizOriginal, filas, columnas);

cout << "Matriz ordenada por columnas:\n";


M_M(matrizOriginal, filas, columnas);
break;

case 3:

cout << "Saliendo del programa.\n";

break;

default:

cout << "Opcion no valida. Intente de nuevo.\n";

system("pause");

getch();

} while (opcion != 3);

return 0;

void mM(int A[MF][MC], int B[MC][MF], int C[MF][MF], int fA, int CA, int fB, int CB) {

for (int i = 0; i < fA; ++i) {


for (int j = 0; j < CB; ++j) {

C[i][j] = 0;
for (int k = 0; k < CA; ++k) {

C[i][j] += A[i][k] * B[k][j];


}

}
}

}
void oC(int matriz[MF][MC], int fil, int col) {
for (int j = 0; j < col; ++j) {

for (int i = 0; i < fil - 1; ++i) {

for (int k = i + 1; k < fil; ++k) {

if (matriz[i][j] > matriz[k][j]) {

int temp = matriz[i][j];

matriz[i][j] = matriz[k][j];

matriz[k][j] = temp;

}
}

void M_M(int matriz[MF][MC], int f, int c) {

for (int i = 0; i < f; ++i) {

for (int j = 0; j < c; ++j) {

cout << matriz[i][j] << "\t";

cout << endl;


}

También podría gustarte