Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: sofi1 en 22 Agosto 2011, 03:12 am



Título: Ayuda.Error. Intentando multiplicar dos matrices.
Publicado por: sofi1 en 22 Agosto 2011, 03:12 am
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");
}


Título: Re: Ayuda.Error. Intentando multiplicar dos matrices.
Publicado por: NecBalaam en 22 Agosto 2011, 03:48 am
Saludos...

Código:
 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 :)


Título: Re: Ayuda.Error. Intentando multiplicar dos matrices.
Publicado por: sofi1 en 22 Agosto 2011, 04:11 am
Código:
 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!