Ir ao conteúdo
  • Cadastre-se

C Printar na tela os numeros pares e impares inseridos


felpesz

Posts recomendados

Ola estou com uma duvida em um exercicio c: 
Escrever um programa que carregue um vetor de dez elementos numéricos, calcule e mostre:
a) A quantidade de números pares.
B) Quais são os números pares.
c) A quantidade de números ímpares.
d) Quais são os números ímpares.

 

Falta apenas printar os numeros pares e impares inseridos como eu faço?

 

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

int main()
{
    int impar, par, nun, x;

    impar=0;
    par=0;

    for(x=1; x<=10; x++){
        printf("\nNumero %d : ", x);
        scanf("%d", &nun);

        if(nun %2 == 0){
            par++;
        } else {
            impar++;
        }
    }

    printf("\nPar: %d", par);
    printf("\nImpar: %d", impar);


    system("PAUSE");
    return 0;
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Olá !

 

 

Em 21/06/2018 às 12:16, felpesz disse:

Falta apenas printar os numeros pares e impares inseridos como eu faço?

  • Existem muitas maneiras, porém aquela que jugam a melhor é usando um algoritmo de ordenação. Nesse tipo se solução a lista é ordenada seguindo decisão dicotômica [em duas partes opostas]: que no seu caso é par ou é ímpar.
  • Ainda existe outra solução, criada por mim, de fazer essas variáveis percorrem o vetor De frente Para trás: Nesse caso, enquanto se contabiliza os valores nas variáveis par e ímpar, o vetor vai sendo preenchido conforme for tendendo para direita os ímpares, e para esquerda os pares.
  • Ex.: [ P P P -> <- Í Í Í ], nessa situação o vetor tem no 'rabo' os valores ímpares e na 'cabeça' os pares, bem mais simples; tente introduzir funções.

 

@felpesz Entendeu?

 

 

#EDIT: 23 / 6 / 2018

Pela didática fiz a seguinte resolução;

Spoiler

#include <stdio.h>  /* printf; scanf*/
#include <locale.h> /* setlocale*/
#include <stdlib.h> /* system*/

/**
 * @brief Apresento os elemetos da lista na ordem que se seguem, escrevendo-os
 * @param lista ponteiro de vetor para tipo inteiro
 * @param com indice donde começa
 * @param fim indice donde termina
 */
void show_lista( int *lista,int com,int fim )
{
    if ( com < fim ){ /* SE com é menor que fim */
        
        printf( "[%d",lista[com] ); /* Escreva o 1-elemento da lista*/
        while ( ++com < fim ){ /* ENQUENTO com menor que fim REPITA*/
        
            printf( " %d",lista[com] );/* Escreva o próximo elemento da lista*/
        }
        printf( "]" );/* Escreva o fechamento com o n-elemento da lista*/
    }
    else { /* SE não ... */
    
        printf("[]"); /* Escreva lista vazia*/
    }
    return;
}
int main()
{
    setlocale( LC_CTYPE,"Portuguese" ); /* Modifico o padrão de entrada e saída
    para texto em Português*/
    int quant_impares,quant_pares; /* Reservi na memória dois inteiros*/
    quant_impares= 0; /* para quantidade de números pares*/
    quant_pares=   0; /* para quantidade de números ímpares*/
    
    int lista[10];  /* Reservi na mémoria lista de 10 inteiros para os valores*/
    int usur_valor; /* Reservi na memória um inteiro*/
    usur_valor= 0;  /* para atribuir os valores digitados pelo usuário*/

    printf( "%s","### Programa separar pares de ímpares C\n" );
    printf( "%s","\n" );

    /* Lerá do fluxo padrão de entrada umsequência de 10 valores inteiros, e in-
       crementa a quantidade de pares, se não ímpares*/
    for ( int x= 1; x <= 10; ++x ){/* PARA x até 10, e REPITA os comandos*/
        
        printf("%2d%s",x,"#] Informe valor inteiro: " ); /* Escreva na prompt 
        pedido para usuário que Informe valor inteiro*/
        
        scanf( "%d", &usur_valor ); /* Leio o valor digitado por ele, e gravo na
        memória */

        if ( usur_valor % 2 == 0 ){ /* SE valor é divisível por 2 é par, se não
        é ímpar*/
        
            /* Se igual a 0 é número par*/
            lista[quant_pares]= usur_valor; /* Adiciono no começo da lista o va-
            lor*/
            ++quant_pares; /* Incremento a quantidade de pares*/
            
        }
        else {
            
            /* SE igual a não 0 é número ímpar*/
            lista[9 - quant_impares]= usur_valor; /* Adiciono no fim da lista o
             valor*/
            ++quant_impares; /* Incremento a quantidade de ímpares*/
        }
    }

    printf("Par: %d\n", quant_pares); /* Escreva mensagem com número de pares*/
    printf("Impar: %d\n\n", quant_impares); /* Escreva mensagem com ímpares*/

    printf( "%s%s","Lista de valores ","pares " ); /* Escreva 'Lista de valores
    pares*/
    show_lista( lista,0,quant_pares ); /* Chamo função com lista,começo e fim*/
    putchar( '\n' );
    
    printf( "%s%s","Lista de velores ","ímpares ");/* Escreva 'Lista de valores
    ímpares*/
    show_lista( lista,quant_pares,10 ); /* Chamo função com lista,  começo   e 
    fim*/
    putchar( '\n' );
    

    system("PAUSE");/* A pausa dramática :3 */
    return 0; /* Finalizo programa */
}

 

 

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...