Ayuda.Error. Intentando multiplicar dos matrices.

Iniciado por sofi1, 22 Agosto 2011, 03:12 AM

0 Miembros y 2 Visitantes están viendo este tema.

sofi1

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");
}

NecBalaam

Cita de: sofi1 en 22 Agosto 2011, 03:12 AM
Saludos...

if (b==c){
for(int i=0;i<a;i++){
for(int j=0;j<d;j++){
Solu[i][j]=0;
for(int l=0;l<c;l++){
Solu[i][j]=Solu[i][j]+(MatA[i][l]*MatB[l][j]);}}
}}else{cout<<"Error:No puede sumar una matriz de distintas dimensiones";}

for ( int i = 0; i < a; i++ ) {
for ( int j = 0; j < d; j++ ){
cout <<Solu[i][j] <<" "; }
cout<<endl;}cout<<endl;
system("pause");
break;


Mira precisamente tengo un programa pero en C++... checa por si te sirve en el ando trabajando precisamente ahurita jejeje ;)... saludos y suerte en lo que te propongas :)
No esperes tener el 100% de todo, por que no tendrás nada, mejor trabaja en equipo y obtendrás el 50% de algo.

sofi1

Cita de: NecBalaam en 22 Agosto 2011, 03:48 AM
if (b==c){
for(int i=0;i<a;i++){
for(int j=0;j<d;j++){
Solu[i][j]=0;
for(int l=0;l<c;l++){
Solu[i][j]=Solu[i][j]+(MatA[i][l]*MatB[l][j]);}}
}}else{cout<<"Error:No puede sumar una matriz de distintas dimensiones";}

for ( int i = 0; i < a; i++ ) {
for ( int j = 0; j < d; j++ ){
cout <<Solu[i][j] <<" "; }
cout<<endl;}cout<<endl;
system("pause");
break;


Mira precisamente tengo un programa pero en C++... checa por si te sirve en el ando trabajando precisamente ahurita jejeje ;)... saludos y suerte en lo que te propongas :)

Hey gracias!  ;) Igual!