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.
publicstaticvoidmain(String[]args){Scannerentrada=newScanner(System.in);double[]reais=newdouble[10];inti;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:
finalScannerscanner=newScanner(System.in);System.out.println("Digite 10 valores reais para a lista:");// Lê 10 valores em ordem de input do usuáriofinaldouble[]numbers=newdouble[10];for(inti=0;i<10;i++){numbers[i]=Double.parseDouble(scanner.next());}// Cria um novo array com a ordem inversa a ordem de leiturafinaldouble[]inverseNumbers=newdouble[10];for(inti=9;i>=0;i--){inverseNumbers[i]=numbers[(numbers.length-1)-i];}// Exibe no console o array de ordem inversaSystem.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:
finalScannerscanner=newScanner(System.in);System.out.println("Digite 10 valores reais para a lista:");// Lê 10 valores em ordem de input do usuáriofinaldouble[]numbers=newdouble[10];for(inti=0;i<10;i++){numbers[i]=Double.parseDouble(scanner.next());}// Altera o mesmo array lido aplicando a ordem inversaintlength=numbers.length;finalintlimit=length/2;for(inti=0;i<limit;i++){doubleaux=numbers[i];numbers[i]=numbers[length-1];numbers[length-1]=aux;length-=1;}// Exibe no console o array de ordem inversaSystem.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:
finalScannerscanner=newScanner(System.in);System.out.println("Digite 10 valores reais para a lista: ");// Lê 10 valores em ordem inversafinaldouble[]numbers=newdouble[10];finalintlength=numbers.length;for(inti=length-1;i>=0;i--){numbers[i]=Double.parseDouble(scanner.next());}// Exibe no console o array de ordem inversaSystem.out.println(Arrays.toString(numbers));