Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
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
  • Autor do tópico
  • desculpe   Math.Pi sou novo em c, não compriendi o erro, no if tenho q mandar ler o "des" ?

    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?

    Editado por Math.Pi

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • "a" e a multiplicação entre des*100

    "des" e o valor digitado

    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
  • Autor do tópico
  • 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
  • Autor do tópico
  • galera n entendi qual e a variavel q eu tenho q colocar na condição seria possivel me mostra?

    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






    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

    ×