Ir ao conteúdo
  • Cadastre-se
estudante

C intervalo de numeros par

Posts recomendados

12.    Faça um programa que peça dois números inteiros e gere os números pares que estão no intervalo entre eles.
R.

 

Estou tentando imprimir os pares no intervalo, mas ele não imprime, e o intervalo está começando com o número que digite, como faço para ele pular para o numero seguinte?

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


int main(int argc, char** argv) {
    
    int num1,num2,i,par;
    
    printf(" Digite o 1 numero ");
    scanf("%d",&num1);
    printf(" Digite o 2 numero ");
    scanf("%d",&num2);

        for (i= num1;i<num2;i++){
        if((i%2)==0){
            par=par + 1;
}
            
        printf("%i, ",par);
    }
    
          
    return 0;
}

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá @estudante.

 

Você precisa reformular a lógica do seu algoritmo.

 

Tente entender melhor o problema, por exemplo, se for informado 1 e 10... teria que aparecer 2, 4, 6 e 8 (supondo que o intervalo é aberto), correto?. Tente analisar e interpretar como funciona essa sequência...

 

Sugiro que tente entender como o seu código atual está funcionando e se o resultado que está apresentando corresponde com o que você entendeu ou não... ou seja, não me parece está ocorrendo algum erro de sintaxe, mas apenas na lógica... o programa está fazendo o que você pediu para ele fazer...

 

Reformule para o que você precisa. Vá tentando...

 

 

No aguardo.

 

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite, você precisa só retirar aquela parte do + não e necessária e só usar a lógica.

#include <stdio.h>

int main(){
    
    int n1, n2,n;
    printf("Digite um numero: ");
    scanf("%i",&n1);
    fflush(stdin);
    printf("Digite outro numero: ");
    scanf("%i",&n2);
    fflush(stdin);
    

    for(n1=1;n1<n2;n1++){
        if(n1%2==0){
        printf("%i \n",n1);
    
    }

    }
    

    return 0;    
}

 

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá a todos.

 

Segue uma resposta para referência.

#include <stdlib.h>
#include <stdio.h>
/*
12. Faça um programa que peça dois números inteiros e gere os números pares que estão no intervalo entre eles.
*/
int main(int argc, char** argv) {
    //int num1, num2, i, par;    A VARIÁVEL PAR NÃO FOI NECESSÁRIA
    int num1, num2, i;
    
    printf(" Digite o 1 numero ");
    scanf("%d",&num1);
    printf(" Digite o 2 numero ");
    scanf("%d",&num2);
    //for (i=num1; i<num2; i++) { //NÃO ESTÁ INCLUINDO O NÚMERO FINAL NA CONTA
    for (i=num1; i<=num2; i++) {
        if ((i%2)==0) { 
            //par=par+1;    O PROGRAMA NÃO QUER A QUANTIDADE, MAS SIM OS NÚMEROS EM SI
            printf("%i, ",i);
        }
        //printf("%i, ",par); SE FOSSE A QUANTIDADE, DE QUALQUER FORMA ESSA LINHA DEVERIA FICAR DEPOIS DO FOR
    }
    return 0;
}

 

Qualquer dúvida é só perguntar.

 

No aguardo.

adicionado 6 minutos depois

ADENDO

 

Em 18/02/2018 às 15:41, estudante disse:

Estou tentando imprimir os pares no intervalo, mas ele não imprime, e o intervalo está começando com o número que digite, como faço para ele pular para o numero seguinte?

No caso, ele está imprimindo no lugar errado, ou seja, a cada loop está imprimindo um valor (se a faixa tem 10 números, vão ter 10 valores).

 

E como a variável par só é atualizada quando o i é par, vai ficar, basicamente, repetindo o valor duas vezes, ou seja, Vai ficar exibindo a "soma dos pares a cada loop, sendo que só é atualizado quando é par"... só a primeira e últimas posições que podem ficar sem duplicar (fica solitário quando insere um número ímpar).

adicionado 14 minutos depois

ADENDO 2

@Guilherme Sandmann, só alguns detalhes. Segue o código para verificação:

#include <stdio.h>

int main() {
    int n1, n2,n;
    printf("Digite um numero: ");
    scanf("%i",&n1);
    fflush(stdin);
    printf("Digite outro numero: ");
    scanf("%i",&n2);
    fflush(stdin);
    //for(n1=1;n1<n2;n1++) { //está indo de 1, em vez de n1. E o valor de n2 não está sendo considerado 
    for(n=n1; n<=n2;n++) {
        if(n%2==0) {
            printf("%i \n",n);
        }
    }
    return 0;
}

 

 

Caso não seja para incluir os números na conta, poderia ficar assim:

#include <stdio.h>

int main() {
    int n1, n2,n;
    printf("Digite um numero: ");
    scanf("%i",&n1);
    fflush(stdin);
    printf("Digite outro numero: ");
    scanf("%i",&n2);
    fflush(stdin);
    for(n=n1+1; n<n2;n++) { //<--- dessa forma, NÃO VAI INCLUIR os números informados
        if(n%2==0) {
            printf("%i \n",n);
        }
    }
    return 0;
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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...

GRÁTIS: minicurso “Como ganhar dinheiro montando computadores”

Gabriel TorresGabriel Torres, fundador e editor executivo do Clube do Hardware, acaba de lançar um minicurso totalmente gratuito: "Como ganhar dinheiro montando computadores".

Você aprenderá sobre o quanto pode ganhar, como cobrar, como lidar com a concorrência, como se tornar um profissional altamente qualificado e muito mais!

Inscreva-se agora!