Ir ao conteúdo
  • Cadastre-se
david nilo

C++ estrutura condicional if else

Recommended Posts

ola boa tarde amigos,

 

então estou sem entender um problema no meu codigo em linguagem c, fiz uma estrutura condicional no primeiro if funciona normal mas no else não esta funcionando alguem pode me ajuda e me explica porque não esta entrando no else?

este e o codigo:

no meu problema tenho que fazer um codigo q mostre o desconto, de 200 a 1000 desconto de 5%, acima de 1000 desconto e de 10% e mostra o valor do desconto e o valor total com desconto.

 

#include<stdio.h>
int main(){
float a, r, des,total;
printf("    1-Alto consumo de oleo lubrificanter: \n\n");
                    printf("Digite o tempo gasto para fazer o servico:\n ");
                    scanf("%f", &des);
                    if(a=200, a<1000){
                    a=des*100;
                    des *= 100/100;
                    total= des*5;
                    r= (200-total);
                    printf("\nO total do servico com a mao de obra sem o desconto e de:%2.f R$\n", a);
                    printf("\nDE R$ 200,00 a R$ 1.000,00, desconto de 5%% : %2.f R$\n", total);
                    printf("\nO total do servico com a mao de obra e o desconto e de:%2.f R$\n", r);
                    system("pause");
                    system("cls");
                    }
                    else if(a>=1000){
                        a=des*100;
                        des *= 100/100;
                        total= des*10;
                        r= (a-total);
                        printf("\nO total do servico com a mao de obra sem o desconto e de:%2.f R$\n", a);
                        printf("\nDE R$ 1.000,00 a cima, desconto de 10%% :%2.f R$\n", total);
                        printf("\nO total do servico com a mao de obra e o desconto e de:%2.f R$\n", r);
                        }
                        return 0;
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde.

Você leu des mas comparou a

A comparação de igualdade está errada. Que vírgula é essa aí dentro do if?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não sabe o valor de "a". Então como vai comparar "a==200"? Olhe aqui a comparação com 2 símbolos "=" e não somente um. Aquela vírgula no meio do IF não existe. Use && ou || 

http://www.cprogressivo.net/2013/01/Operadores-logicos-E-OU-e-negacao.html

 

ME diga quem é o "a" e quem é o "des" nesse código? Se você está lendo o tempo gasto, por quê usou a variável "des" e não usou uma varável "tempo" que seria mais fácil de entender?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então seu if deveria comparar o valor digitado "des" e não o "a"

Refaça seu código e poste aí.

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz dessa forma "a==200|| a<=100" e tambem usei o && e ainda nnão entra no else, já tentei colocar cada condição entre () e não deu certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já disse que você tem que comparar a variável que foi digitada e não "a".

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

no if está funcionando porque você diz que "a" recebe um valor (200), no else if, você apenas compara, e não declara um valor;

adicionado 1 minuto depois

o que acontece, ele entra no if, atribui 200 para A, compara com a condição, faz o que se pede, o A nunca recebe um valor diferente de 200, portanto, nunca maior que 1000

adicionado 5 minutos depois

outra coisa, no caso de "des *= 100/100;", o "des" está recebendo o valor de "des" * 1 (resultado de 100/100), portando, des = des

Compartilhar este post


Link para o post
Compartilhar em outros sites
2 horas atrás, david nilo disse:

galera n entendi qual e a variavel q eu tenho q colocar na condição seria possivel me mostra?

A variável que você leu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 if(des<1000), mas antes, atribua o valor de a, no caso, float a=200, des, reveja tambem os valores que está atribuindo, se ver com cuidado, vai perceber que ao invés de incrementar 5%, você multiplicou vezes 5...

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

×