Ir ao conteúdo
  • Cadastre-se

Separar vetor em 2 vetores - par e ímpar.


Sorrechia

Posts recomendados

Estou mais uma vez apanhando para fazer este código, e pra variar não acho o erro...

HELP :ahh:


/*Faça um programa que leia 20 números
inteiros e armazene-os num vetor. Após a
realização da leitura, crie dois novos
vetores, armazenando os números pares no
vetor PAR e os números IMPARES no vetor
impar. Escreva os três vetores na tela. Não
permita “buracos’’ entre valores.*/
#include<stdio.h>
#include<stdlib.h>

int main()

{
int i, num[20], par[10], impar[10],x=0,y=0;

printf("Digite 20 numeros inteiros:\n\n");

for (i=0; i<20; i++) //preenchimento do vetor//
scanf("%d",&num);

for (i=0; i<20; i++)
{
if(num[i]%2 == 0)//verificação se o número é par//
{
par[x]=num[i];//Armazenamento dos numeros pares no vetor par//
x++; //incremento do índice do vetor par//
}
else //se o numeto inteiro não é par, é ímpar!//
{
impar[y]=num[i];//Armazenamento dos numeros ímpares no vetor ímpar//
y=++; //incremento do índice do vetor ímpar//
}
}


printf("Numeros pares digitados\n\n"); //impressão do vetor par//

for (i=0; i<x; i++)
printf("\n\n%d",par[i]);

printf("Numeros impares digitados\n\n");//impressão do vetor ímpar//

for (i=0; i<y; i++)
printf("\n\n%d",impar[i]);

system("pause");


}

Link para o comentário
Compartilhar em outros sites

O que o debugger disse? Tem que ficar atento. Geralmente ele aponta bem os erros, até a linha.

No code blocks apareceu iss:

24 error: expected expression before ‘;’ token

Ou seja, a linha 24: y=++

tira esse '='. É só y++ mesmo.

E você não está armazenando nas posições certas do vetor 'num': scanf("%d",&num)

Outro detalhe é que voce alocou só um espaço de 10 inteiros pros pares e 10 pros ímpares.

E se eu digitar 11 pares? ou 20 ímpares? Tem que ser 20 pra cada

E poderia economizar um laço for também, colocando o scanf dentro do laço que vai preencher os vetores pares e ímpares:


for (i=0; i<20; i++)
{
scanf("%d",&num[i]);
if(num[i]%2 == 0)//verificação se o número é par
{
par[x]=num[i];//Armazenamento dos numeros pares no vetor par
x++; //incremento do índice do vetor par
}
else //se o numeto inteiro não é par, é ímpar!
{
impar[y]=num[i];//Armazenamento dos numeros ímpares no vetor ímpar
y++; //incremento do índice do vetor ímpar
}
}

Não sei se faz por costume, mas como pode ver, pra comentar uma linha no código, só precisa começar com '//', não precisa terminar com '//' também.

Link para o comentário
Compartilhar em outros sites

Ola, dei uma ajeitada no seu código, mudei de 20 para 10 posições apenas para facilitar os testes.

tirei um for, fiz algumas mudanças, observe o que mudou, e tenho certeza que você

chega lá:



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

int main(){

int h, i = 0, j = 0, num[10], par[10], impar[10];

printf("Digite 10 numeros inteiros:\n\n");

for (h = 0; h < 9; h++){

scanf(" %d ", &num [h]);

if (num [h] % 2 == 0) par [i++] = num [h];

else impar [j++] = num [h];
}

printf("\n\nNumeros pares digitados: ");
for(h = 0; h < i; h++)

printf(" %d ", par [h]);

printf("\n\nNumeros impares digitados: ");
for(i = 0; i < j ; i++)

printf(" %d ", impar [i]);

printf("\n\n");

system("pause");

}


Link para o comentário
Compartilhar em outros sites

  • 4 anos depois...

Fiz de um jeito mais simples em que você mesmo pode escolher quantas posições quer colocar:

 

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

main(){
    int num,
    count=1;
    printf("digite um numero:");
    scanf("%d",&num);
    printf("impares \t pares\n");
    while(count<=num) //enquanto
    {
        if(count%2==1)
        printf(" %d \t", count);
        else
        printf(" \t %d\n", count);
        count++;
    }

}

Link para o comentário
Compartilhar em outros sites

  • 2 anos depois...
#include<bits/stdc++.h>
int main()

{
    int i, num[20], par[20], impar[20],x=0,y=0;

    printf("Digite 20 numeros inteiros:\n\n");

    for (i=0; i<20; i++) //preenchimento do vetor//
        scanf("%d",&num[i]);

    for (i=0; i<20; i++)
    {
        if(num[i]%2 == 0)//verificação se o número é par//
        {
            par[x]=num[i];//Armazenamento dos numeros pares no vetor par//
            x++; //incremento do índice do vetor par//
        }
        else //se o numeto inteiro não é par, é ímpar!//
        {
            impar[y]=num[i];//Armazenamento dos numeros ímpares no vetor ímpar//
            y++; //incremento do índice do vetor ímpar//
        }
     }


    printf("\nNumeros pares digitados\n"); //impressão do vetor par//

    for (i=0; i<x; i++)
         printf("%d\n",par[i]);

    printf("\nNumeros impares digitados\n");//impressão do vetor ímpar//

    for (i=0; i<y; i++)
         printf("%d\n",impar[i]);

    system("pause");


}

O seu código, colega. Confere aí se roda...

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...