Ir ao conteúdo
  • Cadastre-se
Mateus Souza Silva de Mari

C++ RESOLVIDO Segunda estrutura for não funciona

Recommended Posts

Alguém poderia me explicar o motivo pela qual o meu código não está funcionando completamente? Ele está realizando a contabilização da quantidade de vezes que a primeira estrutura FOR vai repetir, adentra e faz a leitura das variáveis B e C, mas quando se trata de ir para a segunda estrutura FOR que é onde irei contar todos os números ímpares entre os números e somar eles, simplesmente não está rodando, fica como se o programa só tivesse a leitura das variáveis B e C. O que está acontecendo para que a segunda estrutura FOR não esteja sendo rodada?


 

#include <cstdio>

using namespace std;

int main () {

    int a,b,c,soma,n1;

    scanf("%d",&a);

    soma=0;

    for (int i=1;i<=a;i++) {

        scanf("%d%d",&b,&c);

        if (c==c) {

            for (int x=b;x==c;x++) {

                if (x%2==1) {

                    soma+=x;

                    printf("%d\n",soma);

                }

            }

        }

        else if (b==c) {

            for (int y=b;y==c;y--) {

                if (y%2==1) {

                    soma+=y;

                    printf("%d\n",soma);

                }

            }

        }

    }

    return 0;

}

 

Editado por Mateus Souza Silva de Mari
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde.

O segundo FOR nunca vai funcionar por causa disso:

 if (c==c)

C é sempre igual a C, então ele nunca vai cair no ELSE e executar o segundo FOR.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
4 horas atrás, Math.Pi disse:

Boa tarde.

O segundo FOR nunca vai funcionar por causa disso:


 if (c==c)

C é sempre igual a C, então ele nunca vai cair no ELSE e executar o segundo FOR.

Entendo, mas é exatamente essa questão, dentro desse bloco IF ele sempre vai ser executado, mas mesmo assim a estrutura FOR deste IF não está sendo executada.

 

        if (c==c) {

            for (int x=b;x==c;x++) {

                if (x%2==1) {

                    soma+=x;

                    printf("%d\n",soma);

                }

            }

        }

A cada vez que o programa lê os valores de B e C, ele simplesmente retorna a ler novamente os valores de B e C sem fazer o que o bloco IF está fazendo que é colocar o valor da soma na tela.

adicionado 3 minutos depois

Eu havia colocado o IF com a condição de que ele apenas seja executado se o C for igual o C exatamente para que ele fosse executado, mas não está acontecendo isso.

  • Curtir 1

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

×