Mariana Cipriani Postado Março 25, 2017 Denunciar Share Postado Março 25, 2017 (editado) Problema: Escreva um programa que leia 5 números naturais do usuário, e que em seguida os imprima de volta na tela, primeiro os pares e depois os ímpares: Consigo somente ler, e depois não sei mais o que fazer #include<stdio.h> int main(void) { unsignedint a, b, c, d, e printf("Digite o primeiro numero:\n"); scanf("%u", &a); printf("Digite o segundo numero:\n"); scanf("%u", &b); printf("Digite o terceiro numero:\n"); scanf("%u", &c); printf("Digite o quarto numero:\n"); scanf("%u", &d); printf("Digite o quinto numero:\n"); scanf("%u", &e); Como resolver?? Editado Março 25, 2017 por Mariana Cipriani Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vangodp Postado Março 25, 2017 Denunciar Share Postado Março 25, 2017 vc deve usar arrays. Para poder ler 5 numeros: #include<stdio.h> int main() { int array[5] = {0}; //Reservando memoria para 5 inteiros que iniciam com o valor de 0 int i; //pedindo 5 numeros for (i = 0; i<5; i++) { printf("Entre com o %d\xA7 numero: ",i+1 ); scanf("%d%*c", &array[i]); } getchar(); // pausa return 0; } Agora para poder imprimir pares ou impares devemos usar o operador modulo %. O operador modulo retorna o resto de uma divisão, é dizer se eu faço 11/2 a resposta é 5, mas se faço 11%2 a resposta é 1, se o numero for par, qualquer numeroPar % 2 será igual a zero, ou seja n4ao há resto, então: if(numero % 2 == 0) imprime par E if(numero % 2 != 0) imprime ímpar #include<stdio.h> int main() { int array[5] = {0}; //Reservando memoria para 5 inteiros que iniciam com o valor de 0 int i; //pedindo 5 numeros for (i = 0; i<5; i++) { printf("Entre com o %d\xA7 numero: ",i+1 ); scanf("%d%*c", &array[i]); } //imprime pares printf("Pares: "); for (i = 0; i<5; i++) { if(array[i]%2==0){ printf("%d ", array[i]); } } printf("\n\n"); //Imprime impares printf("Impares: "); for (i = 0; i<5; i++) { if(array[i]%2!=0){ printf("%d ", array[i]); } } printf("\n"); getchar(); // pausa return 0; } Guarde esse exemplo e recorde: Qualquer numero % 2 e o resultado sobrar 0, ou seja, for igual a zero, é par, se não é ímpar. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Mariana Cipriani Postado Março 25, 2017 Autor Denunciar Share Postado Março 25, 2017 Oi, muito obrigada mas não teria como resolver sem usar array? Porque no meu curso nós nem veremos isso :( Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vangodp Postado Março 25, 2017 Denunciar Share Postado Março 25, 2017 (editado) é a mesma coisa, a formula é a mesma. se vc tem um numero: int n1 = 22; vc aplica a formula: if (n1 % 2 == 0) printf("%d", n1); faça isso para os 5 numeros. E para o impar: int n1 = 33; if (n1 % 2 != 0) printf("%d", n1); Vc tem que pensar que "if (n1 % 2 == 0) printf("%d", n1)" é como dizer: Se o resto da divisão de n1 dividido por 2 é igual a zero então imprime porque é par. E "if (n1 % 2 != 0) printf("%d", n1)": Se o resto da divisão de n1 dividido por 2 for diferente de zero então imprima pq é ímpar. Entendeu? Vc pode ler unsigned int a, b, c, d, e... e fazer isso que expliquei antes para cada um deles. Faça a prova e me diga como foi. ;) Editado Março 25, 2017 por vangodp Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Mariana Cipriani Postado Março 25, 2017 Autor Denunciar Share Postado Março 25, 2017 Fiz desse jeito e não consegui, aparem uns números estranhos na saída :( #include<stdio.h> int main (void) { unsigned int a, b, c, d, e; printf("Digite cinco numeros:\n"); scanf("%u", &a); scanf("%u", &b); scanf("%u", &c); scanf("%u", &d); scanf("%u", &e); printf("\nPares:\n"); if (a%2==0){ printf("%u\n", &a); } if (b%2==0) { printf("%u\n", &b); } if (c%2==0) { printf("%u\n", &c); } if (d%2==0) { printf("%u\n", &d); } if (e%2==0) { printf("%u\n", &e); } printf("\n\n"); printf("Impares:\n"); if (a%2!=0) { printf("%u\n", &a); } if (b%2!=0) { printf("%u\n", &b); } if (c%2!=0) { printf("%u\n", &c); } if (d%2!=0) { printf("%u\n", &d); } if (e%2!=0) { printf("%u\n", &e); } return(0); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Mariana Cipriani Postado Março 25, 2017 Autor Denunciar Share Postado Março 25, 2017 Moço, percebi meu erro já kkkkk, não vou nem editar para ficar aqui de exemplo! Eu aprendi com vc que poderia colocar essa sintaxe printf if printf, obrigada <3 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Mariana Cipriani
Problema:
Escreva um programa que leia 5 números naturais do usuário, e que em seguida os imprima de volta na tela, primeiro os pares e depois os ímpares:
Consigo somente ler, e depois não sei mais o que fazer
#include<stdio.h>
int main(void)
{
unsignedint a, b, c, d, e
printf("Digite o primeiro numero:\n");
scanf("%u", &a);
printf("Digite o segundo numero:\n");
scanf("%u", &b);
printf("Digite o terceiro numero:\n");
scanf("%u", &c);
printf("Digite o quarto numero:\n");
scanf("%u", &d);
printf("Digite o quinto numero:\n");
scanf("%u", &e);
Como resolver??
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.