Advertisement
Abelsor

Matriz_Traspuesta_Puntero

May 29th, 2023
2,676
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.51 KB | None | 0 0
  1. /*  Algoritmo para trasponer una matriz utilizando puntero  */
  2. #include<iostream>
  3. #include<ctime>
  4.  
  5. using namespace std;
  6.  
  7. int num_aleatorio(int, int);
  8. void cargar_matriz(int *, int, int);
  9. void imprimir_matriz(int *, int, int);
  10. void trasponer_matriz(int *,int*, int, int);
  11.  
  12. int main()
  13. {
  14.     int m,n;
  15.     cout<<"Numero de Filas: ";cin>>m;
  16.     cout<<"Numero de Colunas: ";cin>>n;
  17.    
  18.     int matriz[m][n];
  19.     int matriz_traspuesta[n][m];
  20.    
  21.     int *puntero_matriz = &matriz[0][0];
  22.     int *puntero_matriz_traspuesta = &matriz_traspuesta[0][0];
  23.    
  24.     cargar_matriz(puntero_matriz, m, n);
  25.    
  26.     // Imprimir Matriz Original
  27.     imprimir_matriz(puntero_matriz, m, n);
  28.    
  29.     trasponer_matriz(puntero_matriz, puntero_matriz_traspuesta, m, n);
  30.    
  31.     // Imprimir Matriz Traspuesta
  32.     imprimir_matriz(puntero_matriz_traspuesta, n, m);
  33. }
  34.  
  35. int num_aleatorio(int min, int max)
  36. {
  37.     return (min + rand()%(max-min+1));
  38. }
  39.  
  40. void cargar_matriz(int *puntero_matriz, int m, int n)
  41. {
  42.     srand(time(NULL));
  43.     for(int i=0 ; i<m ; i++){
  44.         for(int j=0 ; j<n ; j++){
  45.             *(puntero_matriz + i*n + j) = num_aleatorio(1,20);
  46.         }
  47.     }
  48. }
  49.  
  50. void imprimir_matriz(int *puntero_matriz, int m, int n)
  51. {
  52.     cout<<"========================\n";
  53.     for(int i=0 ; i<m ; i++){
  54.         for(int j=0 ; j<n ; j++)
  55.         {
  56.             cout<<*(puntero_matriz+i*n+j)<<"\t";
  57.         }
  58.         cout<<"\n";
  59.     }
  60. }
  61.  
  62. void trasponer_matriz(int *puntero_matriz_A,int *puntero_matriz_B, int m, int n)
  63. {
  64.     for(int i=0 ; i<m ; i++){
  65.         for(int j=0 ; j<n ; j++){
  66.             *(puntero_matriz_B+j*m+i)=*(puntero_matriz_A+i*n+j);
  67.         }
  68.     }
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement