Jump to content

Erro no código do java: Separação de Números Pares e Ímpares


Ir para a Solução Solucionado por vinicius.congeski,

Postagens Recomendadas

Postado

sóou iniciante em java!

escrevi um código em java que:

cria um array de 20 posições

criei loop para preencher

separei e contei os numeros pares e impares

agora estou tentando preencher um array para receber apenas os numeros pares e outro arrray apenas para os numeros impares

ambos  de ta,manho da quantidade de numeros pares e impares. mas não estou conseguindo. alguem pode me dar uma luz?

segue abaixo o código:

 

package atividades_vetor;

import java.util.Random;

import java.util.Scanner;

 

public class Exercicio2_numneros_pares_e_impares {

/*2.Implemente um programa que:

Recebe um vetor de números inteiros positivos, entrada, com capacidade para 20 números.

Em seguida o programa deve verificar esses valores, para saber se é par ou ímpar.

Sabendo-se da quantidade de pares e ímpares:

Crie um vetor resultante par,onde deve armazenar os valores de entrada que são pares.

De forma análoga, o vetor resultante ímpar deve armazenar os valores ímpares de entrada.

Ao fim, mostre o vetor de entrada, o vetor par e o vetor ímpar.*/

 

public static void main(String[] args) {

Scanner entrada = new Scanner(System.in);

int contar_pares=0;//variável criada p/ contar os números pares

int contar_impares=0;//variável criada p/ contar os números impares

int numeros[] = new int[5];//criei 1 array de 20 posições tipo inteiro positivo chamada numeros

System.out.println("digite os 20 números:");//escrevi fora do laaço pedindo os 20 numeros ao usuário

for (int i=0; i<5;i++) {//laço feito para preencher as 20 posições

System.out.print("digite o "+(i+1)+"° n°:");//pedi os 20 numeros ao usuário

//os 20 numeros serão aramzenados na array numeros com bsane na entrada de dados

numeros[i] = entrada.nextInt();

}

System.out.println("\n \n");

for (int i=0; i<5 ; i++) {//1° laço para verificar os valores PARES do vetor numeros

if (numeros[i]%2==0) {//se o valor em posiçao p dividido por 2 restar zero considerar par

System.out.print(numeros[i]+" ");//imprimir os numeros que são considerados par

contar_pares++;//incrementar/contar toda vez que entar na condição de par

}

}

//imprimir a soma das vezes em que ocorreu o evento par

System.out.println("\nQuantidade de números PARES: "+contar_pares);

System.out.println("\n==============================\n");

for (int i=0; i<5 ; i++) {//3° laço para verificar os valores IMPARES do vetor numeros

if (numeros[i]%2==1) {//se o valor em posiçao i dividido por 2 restar um considerar impar

System.out.print(numeros[i]+" ");//imprimir os numeros que são considerados impar

contar_impares++;//incrementar/contar toda vez que entar na condição de impar

}

}

//imprimir a soma das vezes em que ocorreu o evento impar

System.out.println("\nQuantidade de números IMPARES: "+contar_impares);

//criado um vetor cahamado pares do tipo inteiro cujo tamanho será da variável contar_pares

int pares[] =new int[contar_pares];

for (int i=0; i<contar_pares;i++) {

pares[i]= entrada.nextInt();

}

for (int i=0; i<contar_pares;i++) {

System.out.println(pares[i]);

}

image.png

  • Douglas Garcia mudou o título para Erro no código do java: Separação de Números Pares e Ímpares
  • 4 months later...
  • Solução
Postado

Boa Tarde Jackson Miguel, espero que esteja bem!

Para preencher os arrays pares e impares, você precisa ajustar a lógica em que você está verificando se um número é par ou ímpar e, em seguida, adicioná-lo ao array correspondente. No seu código, você está contando os pares e ímpares, mas não está realmente preenchendo os arrays pares e impares corretamente. Segue uma solução para seu problema:

import java.util.Scanner;

public class Exercicio2_numeros_pares_e_impares {

    public static void main(String[] args) {

        Scanner entrada = new Scanner(System.in);

        int contar_pares = 0; // variável criada p/ contar os números pares
        int contar_impares = 0; // variável criada p/ contar os números ímpares

        int numeros[] = new int[20]; // criei 1 array de 20 posições tipo inteiro positivo chamada numeros

        System.out.println("Digite os 20 números:"); // escrevi fora do laço pedindo os 20 numeros ao usuário

        for (int i = 0; i < 20; i++) { // laço feito para preencher as 20 posições
            System.out.print("Digite o " + (i + 1) + "° n°:"); // pedi os 20 numeros ao usuário
            // os 20 numeros serão aramzenados na array numeros com base na entrada de dados
            numeros[i] = entrada.nextInt();
        }

        System.out.println("\n==============================\n");

        for (int i = 0; i < 20; i++) { // laço para verificar os valores PARES e IMPARES do vetor numeros
            if (numeros[i] % 2 == 0) { // se o valor em posição i dividido por 2 restar zero considerar par
                contar_pares++; // incrementar/contar toda vez que entrar na condição de par
            } else {
                contar_impares++; // incrementar/contar toda vez que entrar na condição de ímpar
            }
        }

        // criado vetores chamados pares e impares do tipo inteiro cujo tamanho será da
        // variável contar_pares e contar_impares, respectivamente
        int pares[] = new int[contar_pares];
        int impares[] = new int[contar_impares];

        int indice_pares = 0; // variável para controlar o índice do array pares
        int indice_impares = 0; // variável para controlar o índice do array impares

        for (int i = 0; i < 20; i++) {
            if (numeros[i] % 2 == 0) {
                // Se o número for par, adicione ao array de pares
                pares[indice_pares] = numeros[i];
                indice_pares++; // Aumenta o índice para o próximo elemento de pares
            } else {
                // Se o número for ímpar, adicione ao array de impares
                impares[indice_impares] = numeros[i];
                indice_impares++; // Aumenta o índice para o próximo elemento de impares
            }
        }

        System.out.println("Vetor de entrada:");
        for (int i = 0; i < 20; i++) {
            System.out.print(numeros[i] + " ");
        }

        System.out.println("\n==============================\n");

        System.out.println("Vetor de números PARES:");
        for (int i = 0; i < contar_pares; i++) {
            System.out.print(pares[i] + " ");
        }

        System.out.println("\nQuantidade de números PARES: " + contar_pares);

        System.out.println("\n==============================\n");

        System.out.println("Vetor de números ÍMPARES:");
        for (int i = 0; i < contar_impares; i++) {
            System.out.print(impares[i] + " ");
        }

        System.out.println("\nQuantidade de números ÍMPARES: " + contar_impares);
    }
}

Este código corrige a lógica para preencher os arrays pares e impares corretamente com os valores correspondentes. Além disso, mostra os resultados ao final do programa.

  • Curtir 1
Postado
Em 14/10/2023 at 22:03, Jackson Miguel disse:

sóou iniciante em java!

escrevi um código em java que:

cria um array de 20 posições

criei loop para preencher

separei e contei os numeros pares e impares

agora estou tentando preencher um array para receber apenas os numeros pares e outro arrray apenas para os numeros impares

ambos  de ta,manho da quantidade de numeros pares e impares. mas não estou conseguindo. alguem pode me dar uma luz?

segue abaixo o código:

 

package atividades_vetor;

import java.util.Random;

import java.util.Scanner;

 

public class Exercicio2_numneros_pares_e_impares {

/*2.Implemente um programa que:

Recebe um vetor de números inteiros positivos, entrada, com capacidade para 20 números.

Em seguida o programa deve verificar esses valores, para saber se é par ou ímpar.

Sabendo-se da quantidade de pares e ímpares:

Crie um vetor resultante par,onde deve armazenar os valores de entrada que são pares.

De forma análoga, o vetor resultante ímpar deve armazenar os valores ímpares de entrada.

Ao fim, mostre o vetor de entrada, o vetor par e o vetor ímpar.*/

 

public static void main(String[] args) {

Scanner entrada = new Scanner(System.in);

int contar_pares=0;//variável criada p/ contar os números pares

int contar_impares=0;//variável criada p/ contar os números impares

int numeros[] = new int[5];//criei 1 array de 20 posições tipo inteiro positivo chamada numeros

System.out.println("digite os 20 números:");//escrevi fora do laaço pedindo os 20 numeros ao usuário

for (int i=0; i<5;i++) {//laço feito para preencher as 20 posições

System.out.print("digite o "+(i+1)+"° n°:");//pedi os 20 numeros ao usuário

//os 20 numeros serão aramzenados na array numeros com bsane na entrada de dados

numeros[i] = entrada.nextInt();

}

System.out.println("\n \n");

for (int i=0; i<5 ; i++) {//1° laço para verificar os valores PARES do vetor numeros

if (numeros[i]%2==0) {//se o valor em posiçao p dividido por 2 restar zero considerar par

System.out.print(numeros[i]+" ");//imprimir os numeros que são considerados par

contar_pares++;//incrementar/contar toda vez que entar na condição de par

}

}

//imprimir a soma das vezes em que ocorreu o evento par

System.out.println("\nQuantidade de números PARES: "+contar_pares);

System.out.println("\n==============================\n");

for (int i=0; i<5 ; i++) {//3° laço para verificar os valores IMPARES do vetor numeros

if (numeros[i]%2==1) {//se o valor em posiçao i dividido por 2 restar um considerar impar

System.out.print(numeros[i]+" ");//imprimir os numeros que são considerados impar

contar_impares++;//incrementar/contar toda vez que entar na condição de impar

}

}

//imprimir a soma das vezes em que ocorreu o evento impar

System.out.println("\nQuantidade de números IMPARES: "+contar_impares);

//criado um vetor cahamado pares do tipo inteiro cujo tamanho será da variável contar_pares

int pares[] =new int[contar_pares];

for (int i=0; i<contar_pares;i++) {

pares[i]= entrada.nextInt();

}

for (int i=0; i<contar_pares;i++) {

System.out.println(pares[i]);

}

image.png

Ou você pode fazer como o Vinicius falou, ou você pode criar um outro array unidimensional para receber os números pares e os números impares.

 

assim você conserva o array original.

  • Curtir 2

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...