Jump to content

Problemas na checagem do IF/ELSE


Adauto

Recommended Posts

Gostaria da ajuda de vocês para identificar o problema nas minhas condicionais e nos calculos dentro delas. Não importa a combinação(&& ou || ) que eu faça sempre cai no primeiro IF e nao passa disso. A intenção é calcular o IR devido. Obrigado

 

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
void separadorDeSecao();


int main()
{
    //Permite o uso de acentuação conforme o idioma do sistema
    setlocale(LC_ALL,"Portuguese");
    
    //Declaração de Variaveis.
    
    char nome_funcionario[50];  //Armazena um vetor de char de 50 posições
    float salario;  //Armazena valor do salario
    
    //Entrada de Dados solicitados ao usuário
    
    printf("Entrar com o nome do Funcionario: ");
    gets(nome_funcionario);
    
    printf("Entrar com o valor do salario:  ");
    scanf("%f", &salario);
    
    separadorDeSecao();
    
    printf("Funcionario: %s\n", nome_funcionario );
    printf("Salário: %.2fR$\n", salario);
    
    //Calculo do IR
    if(salario > 0 || salario <=1637,11 )
    {
        printf("Insento de IR.");
    }
    else if(salario >= 1637,12 || salario <= 2453,50)
    {
        salario = (salario * (7,5/100));
        printf("O valor do Imposto devido é de %f", salario);
        
    }else if(salario >= 2453,51 || salario <= 3271,38)
    {
        salario = (salario * (15,0/100));
        printf("O valor do Imposto devido é de %f", salario);
        
    }else if(salario >= 3271,39 || salario <= 4087,65)
    {
        salario = (salario * (22,5/100));
        printf("O valor do Imposto devido é de %f", salario);
        
    }else if(salario > 4087,65)
    {
        salario = (salario * (27,5/100));
        printf("O valor do Imposto devido é de %f", salario);
        
    }
    
    
    
    
    
    system("pause");
    return 0;
}

void separadorDeSecao()
{
    printf("================================================\n");
    
}

Link to comment
Share on other sites

23 minutos atrás, fredericopissarra disse:

Você sequer tentou compilar esse troço, tentou?

Cara o quanto deve ser amarga e triste a sua vida ao ponto de ao invés tentar ajudar você se da ao trabalho de vim bostejar e vomitar arrogância em cima do post alheio.

Já é a segunda vez que eu venho e peço ajuda e você por algum motivo tenta menosprezar tudo que eu fiz. Se você não é capaz de  ajudar alguém que esta iniciando e tendo dificuldade passa direto. Mas se isso faz essa tua vida vazia ter algum sentindo ok, eu até entendo, mas deveria se tratar. E tenho certeza que você um dia quando começou teve dificuldade mesmo que nas coisas simples. Agora por favor quando se deparar com algum pedido meu se não foi pedir muito ignore caso não queira ajudar. Se for pra tentar me menosprezar e destilar seu amargor passe longe, por favor. Passa bem.

Link to comment
Share on other sites

  • Administrators

Conviver num ambiente, mesmo que online, onde pessoas que não conhecem você - e talvez nem queiram conhecer - não é simples. Exige uma certa resiliência para não se ofender. Peço que ambos relevem, caso tenham se ofendido, e vamos nos ater ao problema. ?

@Adauto, não cheguei a compilar, mas se você colou o código exatamente como está, precisa substituir essas vírgulas nos seus valores decimais por ponto.

Se quiser deixar esse código mais pro, pode trocar a gets() pela gets_s() - mas se atenta para o fato de que esta requer 2 argumentos. ?

Usar system("pause") deixa teu código preso ao Windows. Eu removeria isso, ou pelo menos deixaria dentro de um #ifdef pra testar se é Windows, mas enfim, é um capricho. Outros usuários podem dar outras sugestões do que fazer com isso. kkkk

Abraços!

Link to comment
Share on other sites

  • Administrators
5 horas atrás, fredericopissarra disse:

gets() e gets_s() não constam da biblioteca padrão

Opa,

A get_s() é definida na C11 mas alguns compiladores não implementaram mesmo, não sei o motivo. De qualquer forma, se ele tá usando system("pause"), imagino que esteja no Windows e Visual Studio tem. ?

5 horas atrás, fredericopissarra disse:

Mas, como fui tão carinhosamente pedido para ignorar e "passar longe", curtindo minha vida amarga e triste, deixo para descobrirem...

O que acha de tanto você quando o Adauto relevarem essa história e esquecerem isso? Não faz bem pra vocês... ?

Abraços!

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...