Ir ao conteúdo

Posts recomendados

Postado

oi estou fazendo uma questao que pede pra dizer se o numero é par ou impar.

int num;
printf("digite um numero inteiro: ");
scanf("%d",&num);
if(num

gostaria de saber como faço para dizer se ele é par ou impar no algoritmo.

obrigado.

  • Curtir 1
Postado
#include <stdlib.h>
#include <stdio.h>
int main (void)
{
int num;
printf("digite um numero inteiro: ");
scanf("%d",&num);
if(num%2==0)//operador %
{
printf("Par");
}
else
printf("Ímpar");
}

Amigo, o operador "%" verifica a divisão por um número qualquer é 0. Como na matemática para um número natural, ser par a sua divisão por 2 deve ser 0, eis a verificação!

  • Curtir 2
  • 7 anos depois...
  • 4 semanas depois...
  • Membro VIP
Postado

Olá. Só complementando:

Em 17/11/2009 às 15:09, MHK disse:

Amigo, o operador "%" verifica a divisão por um número qualquer é 0. Como na matemática para um número natural, ser par a sua divisão por 2 deve ser 0, eis a verificação!

 

Esses "0" se referem ao "resto da divisão", ou seja, se um número N dividido por um número M tem resto 0, significa que N é divisível por M. Ex.: Se N=10 e M=2, 10 % 2 vai resultar em resto 0... logo 10 é divisível por 2... como todo* número divisível por 2 é par, 10 é par também.

 

*Obs.: é importante se atentar às propriedades da paridade, ou seja, se números negativos também podem ser par ou ímpar... se 0 deve ser considerado como par ou não etc. O que conta é a definição matemática da coisa, não apenas o resultado do algoritmo...

 

Ex.: -5 é par ou ímpar? Pelo algoritmo dará ímpar, pois -5 % 2 tem resto -1, e -1 é diferente de 0. Assim como -30 será par... mas não necessariamente isso é verdade, terá que ver o que a matemática diz sobre isso.

 

  • Curtir 2
  • 6 meses depois...
Postado

Ola, eu ainda estou aprendendo C e nao sabia do operador que verificava o resto da divisao então fiz assim, mas só se aplica se o numero for declarado em int, mas nao vejo porque alguem procuraria saber se é impar ou par por float ou outra coisa.

Ficou assim:

int main()
{
    int n, divisao;
    printf("Digite um numero: ");
    scanf("%d", &n);
    divisao=n/2;
    if (n==divisao*2)
    {
        printf("o seu numero eh par");
    }
    else 
    {
        printf("o seu numero eh impar");
    }
}

 

  • Curtir 1
  • Amei 1
  • 3 anos depois...
Postado

@ROBERTOHAC40   o que você quer dizer com o caminho da direita ou o caminho da esquerda , pois o compilador não muda nem para a direita e nem para a esquerda ,  ele só vai de cima do código para baixo ,  e pode voltar lá em cima se houver e for chamada  uma função lá .

Postado

@devair1010 Pois é amigo, peço desculpa pois não fui claro na pergunta, então vou te mandar o enunciado:

"Na recepção do setor de internação tem um terminal de orientação aos clientes. O usuário deve informar o número do quarto desejado para saber a direção a tomar – direita ou esquerda – no corredor. Por algum motivo desconhecido o antigo algoritmo foi perdido sem possibilidade de recuperação, e neste caso, você deverá escrever um novo algoritmo (em pseudocódigo) para enviar à equipe de desenvolvimento da empresa contratada para refazer o programa.
Sabendo que a regra de negócio (solução) é: caso o número do quarto digitado seja PAR o usuário deve tomar o caminho da direita, do contrário à esquerda." (Fazer no DEV-C++)

  • Obrigado 1
Postado

@ROBERTOHAC40   um modo mais fácil é mesmo usar o operador mod , que na linguagem C é esse  % ,  e assim no código , depois que for digitado um número pode ser assim  :

if( num % 2 == 0 )  //  se o resto da divisao do numero inteiro por dois for igual a zero
{                   //  então é certeza que esse tal numero é par mesmo .  ex.: 254 / 2 = 127 e resta 0
   // aqui é par
}

 

  • 5 semanas depois...
Postado

é mais fácil usar um ternário do que um for.

int main(){
    int n;
    printf("Digite um numero: ");
    scanf("%d", &n);
(n % 2) != 0 ? printf("impar"):printf("par");
}

 

  • Curtir 2
Postado

@Daniel Peixoto    a Que você se refere ?  ,   pois o comando for não tem nada a ver com par ou ímpar ,  ele é apenas um laço de repetição ,  que se repete quantas vezes você informa para ele repetir , e  as comparações  de par ou ímpar podem ficar dentro desse Loop For .   

Postado
Em 18/10/2021 às 15:12, ROBERTOHAC40 disse:

"caso o número do quarto digitado seja PAR o usuário deve tomar o caminho da direita, do contrário à esquerda"

nesse caso você nem precisa da informação de que ele é par, somente do resultado de %.
por exemplo com o ternário:

esse ~
(n % 2) != 0 ? printf("impar"):printf("par");
substituído por esse~
(n % 2) != 0 ? printf("vá para a esquerda"):printf("vá para a direita");

só use o laço for se tiver um número de repetições definidas. Por exemplo, se o número de clientes for inserido pelo usuário ou estiver em uma constante e você precisar repetir essa condição para exatamente esse número. Do contrário, use laços como while, until e afins.
 

  • Curtir 1

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