Bom dia gente, estou fazendo uma lista de java básico e não consegui realizar uma atividade dela. Segue aqui a questão: Faça um Programa que leia um vetor de 10 números reais e mostre-os na ordem inversa.
Fiz desse modo, porém acho que está incorreta.
public static void main(String[] args) {
Scanner entrada = new Scanner (System.in);
double[] reais = new double[10];
int i;
for (i = 0; i < 10; i++) {
System.out.println("Digite 10 valores reais para a lista: ");
reais[i] = entrada.nextDouble();
}
System.out.println(reais[10]);
}
Sou iniciante em java!! Desculpe pelo erros bobos.
Mostrar na ordem inversa acredito que você teria que mostrar da última posição do array para a primeira!
Exemplo:
final Scanner scanner = new Scanner(System.in);
System.out.println("Digite 10 valores reais para a lista:");
// Lê 10 valores em ordem de input do usuário
final double[] numbers = new double[10];
for (int i = 0; i < 10; i++) {
numbers[i] = Double.parseDouble(scanner.next());
}
// Cria um novo array com a ordem inversa a ordem de leitura
final double[] inverseNumbers = new double[10];
for (int i = 9; i >= 0; i--) {
inverseNumbers[i] = numbers[(numbers.length -1) - i];
}
// Exibe no console o array de ordem inversa
System.out.println(Arrays.toString(inverseNumbers));
Você poderia também inverter a ordem do mesmo array lido, sem precisar criar um novo com a ordem inversa!
Exemplo:
final Scanner scanner = new Scanner(System.in);
System.out.println("Digite 10 valores reais para a lista:");
// Lê 10 valores em ordem de input do usuário
final double[] numbers = new double[10];
for (int i = 0; i < 10; i++) {
numbers[i] = Double.parseDouble(scanner.next());
}
// Altera o mesmo array lido aplicando a ordem inversa
int length = numbers.length;
final int limit = length / 2;
for (int i = 0; i < limit; i++) {
double aux = numbers[i];
numbers[i] = numbers[length - 1];
numbers[length - 1] = aux;
length -= 1;
}
// Exibe no console o array de ordem inversa
System.out.println(Arrays.toString(numbers));
Você poderia também já ler diretamente nas posições inversas, evitando um trabalho posterior, mas acredito que o intuíto do execício seria conseguir manipular esta estrutura de dados.
Exemplo:
final Scanner scanner = new Scanner(System.in);
System.out.println("Digite 10 valores reais para a lista: ");
// Lê 10 valores em ordem inversa
final double[] numbers = new double[10];
final int length = numbers.length;
for (int i = length - 1; i >= 0; i--) {
numbers[i] = Double.parseDouble(scanner.next());
}
// Exibe no console o array de ordem inversa
System.out.println(Arrays.toString(numbers));