Si lo piensa más despacio seguro lo sacas sin problemas. Por si acaso te paso la función transponer corregida:
Tenias dos fallos lógicos, por un lado sólo aplicabas los cambios a la diagonal- i==j- con lo que no cambia nada-, y por otro lado al recorrer la matriz al completo, lo que haces en una mitad lo deshaces en la siguiente mitad. Por cierto, ¿no te falta un delete al final del main?.
Saluditos! ..... !!!!
Código (cpp) [Seleccionar]
void transpuesta(int **matriz, int tam)
{
int aux;
for (int i=0; i < tam; i++ )
{
for(int j=0; j < tam && j<i;j++)
{
{
aux = *(*(matriz+i)+j);
*(*(matriz+i)+j) = *(*(matriz+j)+i);
*(*(matriz+j)+i) = aux;
}
}
}
}
Tenias dos fallos lógicos, por un lado sólo aplicabas los cambios a la diagonal- i==j- con lo que no cambia nada-, y por otro lado al recorrer la matriz al completo, lo que haces en una mitad lo deshaces en la siguiente mitad. Por cierto, ¿no te falta un delete al final del main?.
Saluditos! ..... !!!!