Ayuda con matriz traspuesta

Iniciado por sora_ori, 16 Enero 2013, 12:43 PM

0 Miembros y 1 Visitante están viendo este tema.

sora_ori

Buenas,

Estoy con el tema matrices y he llegado hacer una suma entre dos matrices, pero ahora me quedo estancando con el siguiente ejercicio de hacer una traspuesta y luego sumarla. A ver si alguien me puede echar una mano  :P


3. Un programa nos pide los elementos de una matriz 3x3 y nos escribe la matriz traspuesta y la suma de las dos matrices.



#include <stdio.h>
#include <stdlib.h>

int main() {
   
int f,c,num;
int mat[3][3];
int result[3][3];
int traspuesta[3][3];

// matriz
   for (f=0;f<3;f++){
       for (c=0;c<3;c++){
       printf("Escribe un numero para la matriz: (%d %d)",f,c);
       scanf("%d",&mat);
       mat[f][c]=num;
       }
}

// traspuesta
   for (f=0;f<3;f++){
       for (c=0;c<3;c++){

       }
}



// resultado
   for (f=0;f<3;f++){
       for (c=0;c<3;c++){
       result[f][c]=mat[f][c]+traspuesta[f][c];
       }
}




// muestra la suma

   for (f=0;f<3;f++){
       printf("\n|");
       for (c=0;c<3;c++){
           
       printf(" %d ",result[f][c]);
       }
       printf("|");
       }
     
     
   
             
   system("PAUSE");
   return 0;
}


leosansan

Cita de: sora_ori en 16 Enero 2013, 12:43 PM

........... Un programa nos pide los elementos de una matriz 3x3 y nos escribe la matriz traspuesta y la suma de las dos matrices.


Sólo comentarte que te fijes en cómo se calcula la traspuesta.
Hay algunas correcciones menores, como en el scanf e inicializar la traspuesta con la original para luego cambiarla:
Código (cpp) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>

int main() {
int f,c,temp1,temp2;
int mat[3][3];
int result[3][3];
int traspuesta[3][3];

// MATRIZ INICIAL
    for (f=0;f<3;f++){
        for (c=0;c<3;c++){
             printf("Escribe un numero para la matriz: (%d %d)= ",f,c);
             scanf("%d",&mat[f][c]);
        traspuesta[f][c]=mat[f][c];
        }
}
puts ("MATRIZ INICIAL\n");
for (f=0;f<3;f++){
            for (c=0;c<3;c++) {
                     printf("%d  ",mat[f][c]);
                }puts("\n");
        }puts("\n");
// TRASPUESTA
    for (f=0;f<3;f++)
        for (c=0;c<3 && c<f;c++) {
                temp1=traspuesta[f][c];
                temp2=traspuesta[c][f];
                traspuesta[c][f]= temp1;
                traspuesta[f][c]= temp2;
            }
  puts ("MATRIZ SIMETRICA O TRASPUESTA\n");
  for (f=0;f<3;f++)  {
            for (c=0;c<3;c++) {
                     printf("%d  ",traspuesta[f][c]);
                }puts("\n");
        }puts("\n");
// RESULTADO
    for (f=0;f<3;f++){
        for (c=0;c<3;c++){
        result[f][c]=mat[f][c]+traspuesta[f][c];
        }
}
// MUESTRA LA SUMA
    for (f=0;f<3;f++){
        printf("\n|");
        for (c=0;c<3;c++){
          printf(" %d ",result[f][c]);
        }
        printf("|");
    }
    system("PAUSE");
    return 0;
}

Saluditos!:

sora_ori

Se agradece compañero.


Un saludo!