Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rfernandesouza

Vetores para receber números pares e ímpares

Recommended Posts

Boa Tarde,

 

Estou fazendo alguns exercícios sobre vetores na faculdade e encontrei alguns problemas na hora do desenvolvimento do código-fonte.

 

Funciona assim: Meu código terá um vetor que irá receber 6 números digitados pelo usuário, o programa terá que contar quantos desses números são pares e quantos são impares e mostrar quais são pares e quais são ímpares. Estou tendo problemas apenas no momento em que será mostrado quais são os números pares e ímpares na tela, gostaria de ajuda. Segue o código-fonte:


#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int i, j, numero[5], quantidadepar, quantidadeimpar, numpar[5], numimpar[5];

quantidadepar=0;
quantidadeimpar=0;

for (i=0 ; i<=5 ; i++)
{
printf ("Digite o numero de posicao %d: \n", i);
scanf ("%d", &numero);
if (numero%2 == 0)
{
quantidadepar = quantidadepar+1;
numpar=numero;
}
else
{
quantidadeimpar=quantidadeimpar+1;
numimpar=numero;
}
}

printf ("A quantidade de numeros pares e: %d \n", quantidadepar);
printf ("A quantidade de numeros impares e: %d \n", quantidadeimpar);

for (i=0 ; i<=5 ; i++)
{
printf ("Os numeros pares sao: %d \n", numpar);
printf ("Os numeros impares sao: %d \n", numimpar);
}

system("PAUSE");
return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

O seu problema é no armazenamento, não na impressão.

Caso o usuário informe a sequência 2,5,7,4,6, vc tem a seguinte execução:

 

i=0 (2); numpar[0] = 2

i=1 (5); numimpar[1] = 5

i=2 (7); numimpar[2] = 7

i=3 (4); numpar[3] = 4

i=4 (6); numpar[4] = 6

 

As posições 0, 3 e 5 do array numimpar e as posições 1 e 2 do array numpar estarão com "lixo". Isso vai aparecer quando vc iterar nos arrays na impressão. Já que os arrays são independentes, utilize 2 variáveis p/ indexar:

 

 

int contagem_par, contagem_impar, tmp;
int total_entrada = 5;
int pares[5];
int impares[5];
 
contagem_par = contagem_impar = 0;
 
for(contagem_par=0, contagem_impar=0; contagem_par<total_entrada && contagem_impar<total_entrada;) {
   scanf("%d", &tmp);
   if (tmp&1) {
      impares[contagem_impar] = tmp;
      contagem_impar++;
   } else {
       pares[contagem_par] = tmp;
       contagem_par++;
   }
}
 
for(int i=0; i<contagem_par; i++)
   printf("%d ", pares[i]);
 
for(int i=0; i<contagem_impar;i++)
   printf("%d", impares[i]);

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.