Ver Mensaje Individual
  #5 (permalink)  
Antiguo 01/11/2012, 20:50
Avatar de cotolon
cotolon
 
Fecha de Ingreso: octubre-2012
Mensajes: 55
Antigüedad: 11 años, 5 meses
Puntos: 10
Respuesta: Error conversion de tipo en llamada a función con matriz

La otra forma sería con punteros. Soy nuevo en esto, pero encontré por ahí una forma de pasar matrices bidimensionales a través de puntero. Aún me cuesta matrices así que lo que está en comentarios como "explicación" no sé si es valido, bueno aquí te lo dejo:

Código C++:
Ver original
  1. #include<iostream>
  2. #include<stdio.h>
  3. #include <stdlib.h>
  4.  
  5.  
  6. using namespace std;
  7. void muestra_matriz (int **matriz, int n)
  8. {
  9.      for (int j=0; j<n; j++)
  10.     {
  11.         for (int i=0; i<n; i++)
  12.             cout<<matriz[i][j]<<'\t';
  13.         cout <<endl;
  14.     }
  15.  
  16.  
  17. }
  18.  
  19. int main()
  20. {
  21.     int n;
  22.  
  23.     do {cout <<"Indique el orden de la matriz cuadrada (maximo 10): ";
  24.     cin>>n;}while (n<1);
  25.     int matriz [n][n], tmatriz[n][n];
  26.     cout <<"Introduzca los "<<n*n<<" valores de la matriz: ";
  27.     for (int j=0; j<n; j++)         //almacena los valores introducidos
  28.         for (int i=0; i<n; i++)
  29.             cin>>matriz[i][j];
  30.  
  31.     //Declaramos 2 punteros para asignarles los elementos del array
  32.     int count = 0;
  33.     int *punteroMatriz[n], *punteroTMatriz[n];
  34.  
  35.     //matriz traspuesta
  36.     for (int j=0; j<n; j++)
  37.         for (int i=0; i<n; i++)
  38.             tmatriz[i][j]=matriz[j][i];
  39.  
  40.     //Almacenamos referente a las "filas (que también contiene a las columnas)" la direccion de la matriz y tmatriz en el puntero.
  41.     while(count<n)
  42.     {
  43.         punteroMatriz[count] = matriz[count];
  44.         punteroTMatriz[count] = tmatriz[count];
  45.         count++;
  46.     }
  47.  
  48.     //pasamos este puntero a la variable int **matriz
  49.     //En este caso pasamos la direccion de punteroMatriz a **matriz
  50.     //La cual apuntaria tanto a las filas o columnas del array.
  51.     muestra_matriz(punteroMatriz, n);
  52.     cout <<"La matriz traspuesta es: "<<endl;
  53.     muestra_matriz (punteroTMatriz, n);
  54.  
  55.     system("PAUSE");
  56.     return EXIT_SUCCESS;
  57.  
  58. }