Pessoal poderia me ajudar nessa questão java com vetores

1 resposta
java
H

/*
Faça uma aplicação, no qual se crie um vetor de números inteiros do tamanho a ser informado pelo usuário. O vetor deverá ser preenchido com valores a serem informados pelo usuário. O programa deverá apresentar na tela ao final disso os seguinte relatório:

  • os números do vetor em ordem crescente

  • os números do vetor em ordem decrescente

*/
package Atividade;

import java.util.Scanner;

public class At {
public static void main(String [] args) {

int y;

Scanner sc = new Scanner(System.in);

System.out.println(Entre com o tamanho do vetor);

Integer tam = sc.nextInt();

int[] vetor = new int[tam];

for(int x=0; x < vetor.length; x++)

{

System.out.println(Entre com os valores do vetor);

vetor[x] = sc.nextInt();

}
for(int i=0; i<=4; i++){
         for(int j = i; j<=4; j++){
             if(vetor[i] > vetor[j]){
                 y = vetor[i];
                 vetor[i] = vetor[j];
                 vetor[j] = y;
             }
         }
     }
     for(int a: vetor) {
         System.out.println(a+"");
     }
 }

}
Alguém poderia me ajudar a achar o erro do programa ?

1 Resposta

BrunoPereira

Oi,

pelo o que testei seu erro era array out of bounds, caso seja outro so avisar.

Nessa parte é so trocar o i <= 4 e j <= 4 por i < 4 e j < 4

for (int i = 0; i < vetor.length; i++) {

for (int j = 0; j < vetor.length; j++) {

if (vetor[i] > vetor[j]) {

y = vetor[i];

vetor[i] = vetor[j];

vetor[j] = y;

}

}

}

System.out.println("\n" + Valores decrescente:);

for (int a : vetor) {

System.out.println(a + “”);

}
for (int i = 0; i < vetor.length; i++) {
		for (int j = 0; j < vetor.length; j++) {
			if (vetor[i] < vetor[j]) {
				y = vetor[i];
				vetor[i] = vetor[j];
				vetor[j] = y;
			}
		}
	}

	System.out.println("\n" + "Valores crescente:");

	for (int a : vetor) {
		System.out.println(a + "");
	}
Criado 11 de abril de 2020
Ultima resposta 11 de abr. de 2020
Respostas 1
Participantes 2