Oi galera! Estou com um problema em um exercício...
Preciso organizar um Array de inteiros de forma que sua impressão saia em ordem crescente, porém usando MÉTODOS. O exercício pede que seja criado um método "organiza" e ou "troca". Esse troca deve ser usado no método "organiza" para trocar as posições dos inteiros no array.
Bom, sem os métodos consegui fazer de boas:
//EXERCÍCIO SEM MÉTODOS
Scanner sc = new Scanner (System.in);
int ordem [] = new int[3];
ordem[0] = sc.nextInt();
ordem[1] = sc.nextInt();
ordem[2] = sc.nextInt();
for (int j = 0; j<ordem.length; j++){
for(int k = j+1; k < ordem.length; k++){
if (ordem[j]>ordem[k]){
int temp = ordem[j];
ordem[j] = ordem[k];
ordem[k] = temp;
}
}
}
for(int l = 0; l<ordem.length; l++){
System.out.print(ordem[l]+" ");
}
Agora, com os métodos, não tenho o resultado esperado na saída. Segue o código que fiz:
public class JavaApplication14 {
public static void main(String[] args) {
Scanner sc = new Scanner (System.in);
int[] v = new int [3];
System.out.print("Digite um valor para A: ");
v[0] = sc.nextInt();
System.out.print("Digite um valor para B: ");
v[1] = sc.nextInt();
System.out.print("Digite um valor para C: ");
v[2] = sc.nextInt();
System.out.println(" ");
System.out.println("A ordem crescente dos numeros é: ");
System.out.println(" ");
ordena(v);
System.out.print("A ordem crescente dos valores digitados é: ");
for(int j=0; j<v.length; j++){
System.out.print(v[j]+" ");
}
}
public static int[] troca(int a, int b, int[]v){
v[0] = b;
v[1] = a;
return v;
}
public static int[] ordena(int[] v){
for(int i = 0; i<v.length; i++){
for(int k =i+1; k<v.length; k++ ){
if(v[i]>v[k]){
troca(v[i],v[k],v);
}
}
}
return v;
}
}
Nesse código, para inputs A=159, B=45, C=3 tenho a saída 3 45 3... Não consigo enxergar o erro no meu código... Alguém pode ajudar?
Obrigado =)