| Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) | 
| Escreva um programa Java para separar os números pares de um vetor para a esquerda e os números ímpares para a direita - Lista de Exercícios Resolvidos de JavaQuantidade de visualizações: 1640 vezes | 
| Pergunta/Tarefa: Escreva um programa Java para deslocar os elementos com valores pares de um vetor para a esquerda e os números ímpares para a direita. Seu código deverá declarar e construir um vetor de 10 inteiros e pedir para o usuário informar os valores. Em seguida efetue os deslocamentos dos valores dos elementos e mostre o resultado. Sua saída deverá ser parecida com: Informe o valor do 1.o elemento: 5 Informe o valor do 2.o elemento: 2 Informe o valor do 3.o elemento: 4 Informe o valor do 4.o elemento: 9 Informe o valor do 5.o elemento: 1 Informe o valor do 6.o elemento: 8 Informe o valor do 7.o elemento: 3 Informe o valor do 8.o elemento: 13 Informe o valor do 9.o elemento: 20 Informe o valor do 10.o elemento: 7 20 2 4 8 1 9 3 13 5 7 Veja a resolução comentada deste exercício em Java: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
package exercicio;
import java.util.Scanner;
 
public class Exercicio {
  public static void main(String[] args) {
    // vamos fazer a leitura usando a classe Scanner
    Scanner entrada = new Scanner(System.in);
    
    // vamos declarar e construir um vetor de 10 inteiros
    int valores[] = new int[10];
    
    // agora vamos pedir para o usuário informar os valores dos elementos
    for(int i = 0; i < valores.length; i++){
      System.out.print("Informe o valor do " + (i + 1) +
        ".o elemento: ");
      valores[i] = Integer.parseInt(entrada.nextLine());
    }
    
    // definimos os extremos do vetor. A variável esquerdo
    // começa no primeiro índice e a variável direito começa
    // no último índice do vetor
    int esquerdo = 0;
    int direito = valores.length - 1;
    
    // enquanto o lado esquerdo for menor que o lado direito, ou seja,
    // as duas variáveis ainda não se encontraram
    while (esquerdo < direito) {
      // enquanto o valor do vetor no índice [esquerdo] for par e a variável
      // esquerdo for menor que a variável direito
      while (valores[esquerdo] % 2 == 0 && esquerdo < direito){
        esquerdo++; // esquerdo avança um elemento
      }
      
      // enquanto o valor do vetor no índice [direito] for par e a variável
      // esquerdo for menor que a variável direito
      while (valores[direito] % 2 == 1 && esquerdo < direito){
        direito--; // esquerdo reduz em um elemento
      }
      
      // esquerdo ainda é menor que direito?
      if (esquerdo < direito) {
        // fazemos a troca dos elementos
        int temp = valores[esquerdo];
        valores[esquerdo] = valores[direito];
        valores[direito] = temp;
        esquerdo++; // incrementa o lado esquerdo
        direito--; // decrementa o lado direito
      }
    }
    
    // agora mostramos o valor do vetor com os deslocamentos realizados
    for(int i = 0; i < valores.length; i++){
      System.out.print(valores[i] + "  ");
    }
  }
}
 | 
|  Link para compartilhar na Internet ou com seus amigos: | 
| Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Java | 
| Veja mais Dicas e truques de Java | 
| Dicas e truques de outras linguagens | 
| JavaScript - Como retornar o tamanho de uma string em JavaScript usando a propriedade length do objeto String | 
| E-Books em PDF | ||||
| 
 | ||||
| 
 | ||||
| Linguagens Mais Populares | ||||
| 
			   1º lugar: Java | 


 
 





