Autor
|
Tema: transponer matriz c++ (Leído 5,910 veces)
|
indict
Desconectado
Mensajes: 78
|
Hola, necesitaría ayuda en como transponer una matriz, donde yo doy los elementos. Creo que faltaría otra función para escribir los elementos de la matriz. #include<iostream> #include <cstdlib> #include<vector> #include<algorithm> using namespace std;
typedef vector<int>matriz; vector<matriz>M(int m,matriz(int n));
void muestra(matriz M, int n, int m){ for(int i=0;i<m;i++){cout<<"["; for(int j=0;j<n;j++){cout<<M[i][j]<<endl; } cout<<"]"<<endl; } } void transpon(matriz M){ for(int i=0;i<matriz.size()-1;i++){ for(int j=i+1;j<matriz.size();j++){ int aux=M[i][j]; M[i][j]=M[j][i]; M[j][i]=aux; } } } int main(){int M,m,n; cout<<"introduzca el numero de filas"<<endl; cin>>m; cout<<"introduzca el numero de columnas"<<endl; cin>>n; muestra(M,n,m); transpon(M); system("pause"); return 0;}
¡Gracias por la ayuda! 
|
|
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
Me temo que tienes mal declarado el tipo de vector bidimensional. Además pretendes guardar en una matriz mxn otra de nxm ¡ ¡ ¡ , it´s imposible!. Tendrás para ello que crear otra matriz de nxm y en ella guardar los traspuestos.
Te lo paso sin función, eso ya es cosa tuya: #include<iostream> #include <cstdlib> #include<vector> #include<algorithm> #include <iomanip> using namespace std; int main(){ int m,n; cout<<"introduzca el numero de filas"<<endl; cin>>m; cout<<"introduzca el numero de columnas"<<endl; cin>>n; vector<vector<int> > matriz ( m, vector<int> ( n ) ); vector<vector<int> > matrizt ( n, vector<int> ( m ) ); int k = 0; for ( int i = 0; i < m; i++ ) { for ( int j = 0; j < n; j++ ){ //cout << "["<<i+1<<"]"<< "["<<j+1<<"]= ";/*activa esta y la siguiente para entrar a mano*/ //cin >>matriz[i][j]; matriz[i][j] = k++;/*y desactivas esta*/ } } for ( int i = 0; i < m; i++ ) { for ( int j = 0; j < n; j++ ) cout<< setw ( 3 ) << matriz[i][j] <<' '; cout<<'\n'; } for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ matrizt[i][j]=matriz[j][i]; } } cout<<'\n'; for ( int i = 0; i < n; i++ ) { for ( int j = 0; j < m; j++ ) cout<< setw ( 3 ) << matrizt[i][j] <<' '; cout<<'\n'; }system("pause"); // muestra(matriz,n,m); // transpon(matriz,n,m); system("pause"); return 0; }
Saluditos!.
|
|
|
En línea
|
|
|
|
indict
Desconectado
Mensajes: 78
|
muchas gracias 
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
matriz c#
.NET (C#, VB.NET, ASP)
|
shin_akuma
|
2
|
11,160
|
30 Junio 2008, 22:06 pm
por shin_akuma
|
|
|
Duda - Buscar si existe una matriz dentro de otra matriz
Programación Visual Basic
|
EddyW
|
2
|
6,115
|
14 Agosto 2010, 06:18 am
por EddyW
|
|
|
Matriz en C++
Programación C/C++
|
delirio
|
2
|
20,972
|
27 Noviembre 2010, 22:48 pm
por darkvidhack
|
|
|
Matriz Dentro de otra matriz
Programación Visual Basic
|
moba741120
|
3
|
7,018
|
13 Abril 2011, 18:29 pm
por raul338
|
|
|
MATRIZ que imprima como una matriz en forma de cuadrado... ayudaaaaa!! help
Programación C/C++
|
oscarpy
|
3
|
8,972
|
9 Abril 2012, 16:23 pm
por Xandrete
|
|