Implementar um Array com números Pares de outro Array

4 respostas Resolvido
javaprogramação
J

Tenho que implementar um array com os números pares de outro array, não sei como fazer isso, parei nessa parte do código:

int[] vetorPar = new int[10];
	int[] vetor = new int[] { 1, 2, 3, 4, 5 };

	for (int i = 0; i < vetor.length; i++) {
		if ((vetor[i] % 2) == 0) {

		}

	}

Por favor, podem me ensinar?

4 Respostas

G

Faça um LOOP (do, while, for, etc) percorra todo seu array e faça a seguinte verificação:
Divida seu número por 2, se resto do número em questão for = 0 então o número é par, se não é impar. Pegue esse numero identificado na verificação e adicione em seu novo array com números pares.

Para pegar o resto de uma divisão utilize o operador %
10 % 2

J

int[] vetorPar = new int[10];
int[] vetor = new int[] { 1, 2, 3, 4, 5 };

for (int i = 0; i < vetor.length; i++) {
	if ((vetor[i] % 2) == 0) {

	}

}

Fiz esse loop, não sei como “adiciona” no novo vetor

H
Solucao aceita

Você tem que ter um contador para saber em qual posição de vetorPar deve ir o número:

int[] vetor = new int[] { 1, 2, 3, 4, 5 };
int[] vetorPar = new int[vetor.length];
int cont = 0; // posição no vetorPar
for (int i = 0; i < vetor.length; i++) {
    if ((vetor[i] % 2) == 0) {
        vetorPar[cont] = vetor[i]; // adiciona no vetorPar
        cont++; // vai para a próxima posição
    }
}

Também inicializei vetorPar com new int[vetor.length] (o mesmo tamanho de vetor), já que ele vai no máximo ter a mesma quantidade de elementos de vetor (se todos forem pares, por exemplo).


Como arrays têm tamanho fixo, no exemplo acima somente 2 números pares foram colocados em vetorPar (ficaram 3 posições “sobrando”), então para mostrar os pares eu não posso ir até vetorPar.length, tenho que ir apenas até a quantidade de pares que encontrei (por exemplo, se eu quisesse imprimir os pares):

System.out.println("Os númeeros pares são:");
for (int i = 0; i < cont; i++) {
    System.out.println(vetorPar[i]);
}

E só pra constar, você também pode usar o enhanced for para iterar por vetor:

int[] vetor = new int[] { 1, 2, 3, 4, 5 };
int[] vetorPar = new int[vetor.length];
int cont = 0;
for (int n : vetor) { // usando enhanced for
    if (n % 2 == 0) {
        vetorPar[cont] = n;
        cont++;
    }
}

Só não daria para usar em vetorPar, porque como já explicado, nem todas as posições estarão ocupadas, então neste caso teria que iterar até cont mesmo.

J

Muito obrigada!!

Criado 4 de fevereiro de 2021
Ultima resposta 4 de fev. de 2021
Respostas 4
Participantes 3