Ir ao conteúdo

C++ Segunda estrutura for não funciona


Ir à solução Resolvido por Pedro Math.pi,

Posts recomendados

Postado

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;

}

 

  • Curtir 1
Postado
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

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

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!