Teniendo este array :
456 234 593 616
24 861 245 154
548 21 552 101
290 468 691 348
Necesito ordenarlo por columnas se me occurio este método pero el array se sale del rango :
for (int u = 0; u < notas.length; u++) {
for (int i = 0; i < nombres.length; i++) {
for (int j = 0; j < nombres.length; j++) {
if(notas[i][u] > notas[j][u]){
int aux=notas[i][u];
int aux2=notas[j][u];
notas[i][u]=aux2;
notas[j][u]=aux;
}
}
}
}
Un saludo
package elhackerordenararraybi;
public class ElhackerOrdenarArrayBi {
public static void main(String[] args) {
// TODO code application logic here
int numeros[][]= new int [4][4];
int columna=0;
int var_fila=0;
int var_fila2=0;
int temp=0;
numeros[0][0]=456;
numeros[0][1]=24;
numeros[0][2]=548;
numeros[0][3]=290;
numeros[1][0]=234;
numeros[1][1]=861;
numeros[1][2]=21;
numeros[1][3]=468;
numeros[2][0]=593;
numeros[2][1]=245;
numeros[2][2]=552;
numeros[2][3]=691;
numeros[3][0]=616;
numeros[3][1]=154;
numeros[3][2]=101;
numeros[3][3]=384;
//imprimimos array sin ordenar
System.out.println("----ARRAY SIN ORDENAR----");
while(var_fila <4)
{
while(columna<4)
{
System.out.print(" "+numeros[columna][var_fila]+" ");
columna++;
}
System.out.println();
columna=0;
var_fila++;
}
var_fila=0;
columna=0;
//ordenamos el array
while(columna<4)
{
while(var_fila<3)
{
while(var_fila2<3)
{
if(numeros[columna][var_fila]>numeros[columna][var_fila2+1]&& var_fila2>=var_fila)
{
temp=numeros[columna][var_fila];
numeros[columna][var_fila]=numeros[columna][var_fila2+1];
numeros[columna][var_fila2+1]=temp;
}
var_fila2++;
}
var_fila2=0;
var_fila++;
}
var_fila2=0;
var_fila=0;
columna++;
}
columna=0;
var_fila=0;
//Imprimimos el array
System.out.println("----IMPRIMIMOS EL ARRAY ORDENADO--------");
while(var_fila <4){
while(columna<4){
System.out.print(" "+numeros[columna][var_fila]+" ");
columna++;
}
System.out.println();
columna=0;
var_fila++;
}
}
}
:rolleyes: :rolleyes: :rolleyes: :rolleyes:
Muchisimas gracias bewa, pero me desanimo al ver esto xDD llevo 3 días rayandome la cabeza y nada
Es que es difícil entender el código de otro. Por lo menos para mí que estoy empezando xD.
Pero tampoco creo que sea muy necesarios estos ejercicios a parte de para coger manejo. Dile a tu profesor que empiece ya con las clases y la interfaz gráfica si ya teneis un buen manejo. Seguir aumentando la dificultad de estos ejercicios con bucles dentro de bucles me parece de locos y no se avanza.
bajando el code de la declaracion del array numeros:
int valores[]={456 ,234,593, 616,24, 861 , 245 , 154,548 , 21, 552 , 101,290 , 468 , 691,348};
int c=0;
for(int a=0;a<4;a++)
for(int b=0;b<4;b++)
numeros(a)(b)=valores[c++];// cambia los parentesis por corchetes
si se sale de rango verifica el tamaño de tus matrices en tiempo de compilacion.salu2
al estar buscando pues mejor me puse hacerlo espero que les ayude
y que me pueda ayudar ayudándolos saludos
public static void main(String seraff[]) {
String nombre[][] = {{"90", "zavala", "40", "50", "20"},
{"10", "juan", "20", "25", "10"},
{"90", "blanko", "90", "90", "90"},
{"99", "andres", "99", "99", "99"}};
String aux = "";
for(byte k=0;k<4;k++){
for (byte i = 0; i <3; i++) {
if (nombre[1].compareTo(nombre[i+1][1]) > 0) {
for (byte j = 0; j < 5; j++) {
aux = nombre[j];
nombre[j] = nombre[i + 1][j];
nombre[i + 1][j] = aux;
}
}
}}
aux="";
for (byte i = 0; i < 4; i++) {
for(byte j=0;j<5;j++){
aux+=nombre[j]+" ";
}
aux+="\n";
}
System.out.println(aux);
}
}
ITM