Ir ao conteúdo

Posts recomendados

Postado

Preciso resolver um problema mas existem varias etapas que preciso realizar antes de concluir a operacao!

 

Segue a pergunta:

 

Leia 4 valores inteiros A, B, C e D. A seguir, se B for maior do que C e se D for maior do que A, e a soma de C com D for maior que a soma de A e B e se C e D, ambos, forem positivos e se a variável A for par escrever a mensagem "Valores aceitos", senão escrever "Valores não aceitos".

 

 

Segundo o meu codigo eu tentei fazer tudo com apenas um IF e ir acrescentando &&, entretanto, o mesmo não esta compilando. Seria necessário fazer outras condições de IF ? Essa seria a minha duvida... 

 

Segue meu código:

 

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

main ()

{

int A,B,C,D,resultado,resultado2;


scanf ("%d", & A);

scanf ("%d", & B);

scanf ("%d", & C);

scanf ("%d", & D);

resultado =  C + D;

resultado2 = A + B;


if (B > C ) &&  ( D > A ) && ( resultado >  resultado2 ) && (C && D > 0) && (A % 2 == 0 )
{
printf ("Valores aceitos\n");
}

else 
printf ("Valores nao aceitos\n");


system ("pause");


return 0;

}

 

 

Postado

Olá, Zennom!
Estava dando erro na compilação devido ao seu IF. Tinha alguns errinhos, Se você substituir esse novo IF dará certo.

if ((B > C ) &&  (D > A ) && (resultado > resultado2 ) && (C > 0 && D > 0) && (A % 2 == 0 ))

Compare as duas e você vai perceber que tem que tomar alguns cuidados...

------------------------

Olha Zennom, colocar várias condições em um único IF não é o método mais eficaz para se utilizar na programação. Por que? O seu processador vai ter q ler várias vezes a mesma condição, vai ter q comparar cada situação e vai deixar seu programa muito mais lento do que deveria ... por exemplo:

B > C, mas D < A, resultado < resultado2, C < 0, D < 0, A % 2 != 0;  
B < C, mas D > A, resultado < resultado2, C < 0, D < 0, A % 2 != 0;  
B < C, mas D < A, resultado > resultado2, C < 0, D < 0, A % 2 != 0;  
B < C, mas D < A, resultado < resultado2, C > 0, D < 0, A % 2 != 0;  
B < C, mas D < A, resultado < resultado2, C < 0, D > 0, A % 2 != 0;  
B < C, mas D < A, resultado < resultado2, C < 0, D < 0, A % 2 == 0;
B > C, mas D > A, resultado < resultado2, C < 0, D < 0, A % 2 != 0;  
B > C, mas D < A, resultado > resultado2, C < 0, D < 0, A % 2 != 0;  
.... Putz, vai dar algo maior do que 60 situações diferentes... 

O método mais eficaz mesmo é colocar um IF dentro de outros IFs. Por exemplo:

if (B > C) {
    if (D > A) {
        if (resultado > resultado2) {
            if (C > 0) {
                if (D > 0) {
                    if (A % 2 == 0) {
                        //DEU CERTO HEHEHE
                    }
                }
            }
        } 
    }
}

 

  • Curtir 1
Visitante
Este tópico está impedido de receber novas respostas.

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