Ahi les dejo el codigo, a ver si lo logra ver cual es el error... no veo cual es :s
/*Dada una matriz A de N x N, se quiere obtener otra matriz R de N x N tal que: R = A * AT donde: AT es la matriz transpuesta de A*/ #include<stdio.h> #include<stdlib.h> const int t=50;
void llenar (int matriz[t][t], int n) {int f,c; for(f=0;f<n;f++) {for(c=0;c<n;c++) {printf("Indique elementos [%d %d] ",f,c); scanf("%d",&matriz[f][c]); } } }
void imprimir (int matriz[t][t], int n) {int f,c; for(f=0;f<n;f++) {for(c=0;c<n;c++) {printf(" %d ",matriz[f][c]); } printf("\n"); } }
void multiplicacion (int matriz[t][t],int n) {int f,c,matrizmult[t][t],i,j,matriztras[t][t]; for(f=0;f<n;f++) {for(c=0;c<n;c++) {matrizmult[f][c]=0; } } for(j=0;j<n;j++) {for(i=0;i<n;i++) {matriztras[j]=matriz[j]; printf(" %d ",matriz[j]); } printf("\n"); } printf("\n"); for(f=0;f<n;f++) {for(c=0;c<n;c++) {for(i=0;i<n;i++) {matrizmult[f][c]=matrizmult[f][c]+matriz[f][c]*matriztras[c]; } } } for(f=0;f<n;f++) {for(c=0;c<n;c++) {printf(" %d ",matrizmult[f][c]); } printf("\n"); } }
main() {int matriz[t][t],n;
do{printf("Indica dimension matriz:\n"); scanf("%d",&n); }while(n<0 || n>t);
llenar(matriz,n); imprimir(matriz,n); printf("\n"); multiplicacion(matriz,n);
system("pause"); }
|