#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
using namespace std;
const int MaxF=10, MaxC=10;
void leerMatriz(int X[MaxF][MaxC],int *dimF,int *dimC);
void mostrarMatriz(int X[MaxF][MaxC],int dimF,int dimC);
void multiplicarMatriz(int X[MaxF][MaxC],int XdimF,int XdimC,int Y[MaxF][MaxC],int YdimF,int YdimC,int Z[MaxF][MaxC],int *ZdimF,int *ZdimC);
void formatofondo();
int main()
{
formatofondo();
int A[MaxF][MaxC],B[MaxF][MaxC],C[MaxF][MaxC],Anf,Anc,Bnf,Bnc,Cnf,Cnc;
leerMatriz(A,&Anf,&Anc);
mostrarMatriz(A,Anf,Anc);
leerMatriz(B,&Bnf,&Bnc);
mostrarMatriz(B,Bnf,Bnc);
multiplicarMatriz(A,Anf,Anc,B,Bnf,Bnc,C,&Cnf,&Cnc);
mostrarMatriz(C,Cnf,Cnc);
system("pause");
return 0;
}
void leerMatriz(int X[MaxF][MaxC],int *dimF,int *dimC)
{
int i,j,M,N,Val;
printf("\n\nDimension de la MATRIZ:\n\n");
printf("Num filas--->");
scanf("%d",&M);
printf("Num Columnas ---->");
scanf("%d",&N);
printf("\n");
if(M<MaxF && N<MaxC){
for(i=0;i<M;i++){
for(j=0;j<N;j++){
printf("Matriz[%d][%d]=",i+1,j+1);
scanf("%d",&Val);
X[i][j]=Val;
}
}
*dimF=M;
*dimC=N;
}
else{
printf("Dimension fuera de RANGO\n");
system("pause");
exit(1);
}
}
void mostrarMatriz(int X[MaxF][MaxC],int dimF, int dimC)
{
int i,j;
printf("\nMatriz[%d][%d]:\n\n",dimF,dimC);
for(i=0;i<dimF;i++){
for(j=0;j<dimC;j++){
printf("%4d", X[i][j]);
}
printf("\n");
}
printf("\n\n");
}
void multiplicarMatriz(int X[MaxF][MaxC],int XdimF,int XdimC,int Y[MaxF][MaxC],int YdimF,int YdimC,int Z[MaxF][MaxC],int *ZdimF,int *ZdimC)
{
int i,j,k;
if(XdimC==YdimF){
printf("La multiplicacion es: ");
for(i=0;i<XdimF;i++){
for(j=0;j<YdimC;j++){
Z[i][j]=0;
for(k=0;k<YdimF;k++){
Z[i][j]=Z[i][j]+X[i][k]*Y[k][j];
}
}
}
*ZdimF=XdimF;
*ZdimC=YdimC;
}
else{
printf("No es posible multiplicar.");
}
}
void formatofondo()
{
textbackground(WHITE);//color de resalte de las letras
textcolor(BLACK);//color de letra
clrscr();
}
No hay comentarios.:
Publicar un comentario