martes, 20 de septiembre de 2016

La transpuesta de una matriz NxN

la   transpuesta   se   consigue intercambiando filas por columnas y viceversa
por ejemplo:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <iostream>
using namespace std;

int main(){
 int matriz[100][100],t_matriz[100][100];
 int uni[100];
 int fila,columna,i,j;
 cout<<"Tamano de filas: ";cin>>fila;
 cout<<"Tamano de columnas: ";cin>>columna;
 cout<<"Rellene la matriz"<<endl<<endl;
 for(i=0;i<fila;i++){
  for(j=0;j<columna;j++){
   cout<<"Valor # "<<j+1<<" ";cin>>matriz[i][j];
   if(j==columna-1)
   cout<<endl;
  }
 }
 //mostrar matriz
 cout<<"MATRIZ:"<<endl<<endl;
 for(i=0;i<fila;i++){
  for(j=0;j<columna;j++){
   cout<<matriz[i][j]<<" ";
   if(j==columna-1)
   cout<<endl;
  }
 }
 
 cout<<"\n\nTRANSPUESTA DE LA MATRIZ:"<<endl<<endl;
 //guardo todo los valores en una matriz unimensional
 int k=0;
 for(i=0;i<fila;i++){
  for(j=0;j<columna;j++){
   uni[k]=matriz[i][j];
   k++;
  }
 }
 //luego pongo los valores en una matriz multidimensuonal (con la fila y columna cambiado )
 k=0;
 for(i=0;i<columna;i++){
  for(j=0;j<fila;j++){
   t_matriz[i][j]=uni[k];
   k++;
  }
 }
 //y lo muestro
 for(i=0;i<columna;i++){
  for(j=0;j<fila;j++){
   cout<<t_matriz[i][j]<<" ";
   if(j==fila-1)
   cout<<endl;
  }
 }
}

No hay comentarios:

Publicar un comentario