Ejemplo:
Array Original... 7 7 3 1 10 2 8 8 3 9 2 5 5 8 3 10 5 4 4 6 4 3 1 6 5 6 2 7 8 10 3 10 4 3 9 2 3 5 8 1 9 6 8 3 9 Array transpuesto... 7 2 2 10 4 6 3 2 9 7 8 5 5 3 2 10 3 6 3 8 5 4 1 7 4 5 8 1 3 8 4 6 8 3 8 3 10 9 3 6 5 10 9 1 9
SOLUCIÓN EN JAVA:
package transponerarrays;
public class TransponerArrays {
//Genero un array bidimensional del tamaña que indican como parámetro las filas y las columnas
//de números aleatorios entre 1 y 10
static int[][] generaArrayAleatorio(int filas, int columnas){
int[][] matriz=new int[filas][columnas];
int i,j;
for (i=0 ; i < matriz.length ; i++){
for (j=0 ; j < matriz[i].length ; j++){
matriz[i][j] = (int)(Math.random()*10+1);
}
}
return matriz;
}
//Muestro el array bidimensional que pasan como parámetro e imprimo línea por línea
static void muestraArray(int[][] matriz){
int i,j;
for (i=0; i < matriz.length ; i++){
for (j=0 ; j < matriz[i].length ; j++){
System.out.printf("%3d", matriz[i][j]);
}
System.out.println();
}
}
//Con esta función intercambio filas por columnas. A partir del array que recibe
//como parámetro genera otro array transpuesto.
static int[][] transponer(int[][] matriz){
int[][] resultado=new int[matriz[0].length][matriz.length];
int filas,columnas;
for (columnas=0 ; columnas < matriz[0].length ; columnas++){
for (filas=0 ; filas < matriz.length ; filas++){
resultado[columnas][filas]=matriz[filas][columnas];
}
}
return resultado;
}
public static void main(String[] args) {
int [][]matriz;
matriz=generaArrayAleatorio(9,5);
System.out.println("Array Original...");
muestraArray(matriz);
System.out.println();
System.out.println("Array transpuesto...");
matriz=transponer(matriz);
muestraArray(matriz);
}
}