Trocar o ultimo elemento pelo primeiro de um vetor assim por diante

5 respostas Resolvido
C
Como que eu faço para substituir  num vetor por exemplo de 20 posições . Quero substituir o 1 com o  ultimo o segundo com o antepenutimo e assim por diante.

Fiz desta maneira mais não esta imprimir o desejado;

package er2.pkg3;

import java.util.Scanner;
public class ER23 {

public static void main(String[] args) {

Scanner sc=new Scanner(<a href="http://System.in">System.in</a>);

int n;
System.out.print("Digite o número de elementos: ");
    n=sc.nextInt();
   int numero[]=new int [n];
    
    int i;
    int j;
    int aux;
    for(i=0;i<n;i++){
    System.out.print("Digite o número " + (i + 1) + ": ");
    numero[i]=sc.nextInt();
          
    }
    for(i=0;i<n;i++){
     System.out.print(" "+numero[i]+" ");
    }
    System.out.print("  ");
    
    i=0;        
    j=n-1;
  do{
  aux=numero[i];
  numero[i]=numero[j];
  numero[j]=aux;
  i++;
  j--;
  }while(j<i);
  System.out.print(" \t ");
    for(j=0;j<n;j++){
    System.out.print(" "+numero[j]+" ");
    }
    System.out.print("  ");
  
   }
}

5 Respostas

C
Solucao aceita

Bom dia,

Use a mesma logica do ultimo post que fez: link

A condição dentro do while esta incorreta, se i = 0 e j = 19, entao 19 < 0; false. Para que o while continue no loop a condição tem que ser verdadeira, altere o operador para “>”.

C

Bom dia,Boa tarde Prezado campelo.m

Então o valor de i é incrementado e de j e decrementado dentro do { }, mais dentro do while j permanece com 19 e i com 0;

Obrigado

C

Veja que depois complementei com a resposta.

R

Utilize dois contadores:

int i = 0;
int j = arr.length - 1;
while(i < j){
   //troca os elementos
   i++;
   j--;
}
C

Sim notei, precisei entender como realmente ocorre

Criado 24 de fevereiro de 2016
Ultima resposta 24 de fev. de 2016
Respostas 5
Participantes 3