Ir para conteúdo
eXtremedlL

Como utilizar corretamente else // else if

Recommended Posts

Olá pessoal, bom dia!

 

Estou tentando fazer um programa onde preciso ler o nome e o salário (bruto) do funcionário e posteriormente informar ao mesmo qual será salário liquido (já descontando a % do INSS).  Porém, quando digito um salario acima de R$1501, quem tem um desconto de 11%, o sistema me retorna a resposta do desconto de 10%. Alguém poderia me dizer aonde estou errando? (Acredito que sintaxe para o else está incorreta).

 

//Exercicio 32 - Salario vs Desconto
#include <iostream>
using namespace std;
int main ( ) {
    float dp9, dp10, dp11, sb, scd, sl;
    char name[100];
    
    dp9 = 0.09;
    dp10 = 0.10;
    dp11 = 0.11;
    
    cout<<endl<<"CALCULE O SEU SALARIO (JA DESCONTADO O VALOR % DO INSS)"<<endl;
    
    cout<<endl<<"De R$0 a R$800 = 09%; de R$ 801 a 1500 = 10%; de 1501 ou mais = 11%"<<endl;
    
    cout<<endl<<"AVISO: NAO UTILIZE VIRGULA. USE SOMENTE PONTO FINAL."<<endl;
    cout<<"MAS SO USE PONTO PARA REPRESENTAR CENTAVOS. EX: 11111.11"<<endl;
    
    cout<<endl;
    
    system ("pause");
    
    cout<<endl<<"Digite o seu nome: ";
    cin>>name;
    
    cout<<endl<<"Informe o seu salario bruto: ";
    cin>>sb;
    
        if ( sb <= 800.99 ) {
            scd = sb * dp9;
            sl = sb - scd;
            cout<<endl<<"Solicitante: "<<name<<endl;
            cout<<endl<<"Salario liquido (-9% INSS) = R$"<<sl<<endl;
        }
        else if ( sb >= 801.00 || ( 801.00 == 1500.99 ) ) {
            scd = sb * dp10;
            sl = sb - scd;
            cout<<endl<<"Solicitante: "<<name<<endl;
            cout<<endl<<"Salario liquido (-10% INSS) = R$"<<sl<<endl;
        }
        else if ( sb >= 1501.0 ) {
            scd = sb * dp11;
            sl = sb - scd;
            cout<<endl<<"Solicitante: "<<name<<endl;
            cout<<endl<<"Salario liquido (-11% INSS) = R$"<<sl<<endl;
        }
    
    cout<<endl;
    
    system ("pause");
    
    return (0);
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera, conseguir resolver o meu problema com a ajuda de um rapaz no facebook (que em parte estava no segundo e último else). Segue o novo código para os mesmos: 

 

        else if ( sb >= 801.00 && sb <= 1500 ) {
            scd = sb * dp10;
            sl = sb - scd;
            cout<<endl<<"Solicitante: "<<name<<endl;
            cout<<endl<<"Salario liquido (-10%% INSS) = R$"<<sl<<endl;
            }
        else {
            scd = sb * dp11;
            sl = sb - scd;
            cout<<endl<<"Solicitante: "<<name<<endl;
            cout<<endl<<"Salario liquido (-11%% INSS) = R$"<<sl<<endl;
            }

 

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

  • Conteúdo Similar

    • Por arcsaraiva
      Olá, estou iniciando em c++ e estou tentando ajustar um código que não está rodando como deveria. Tenho uma função com os seguintes comandos:
      bool padrao[20]; int contador = 0; padrao[0] = padrao[1] = padrao[5]= padrao[13] = 1; //ou esta linha não funciona if (padrao[contador] != 1){ //ou esta, pois o resultado cout << "dentro if" << contador << endl; contador++; } else { cout << "no else" << contador << endl; contador++; } Reparem que eu preciso do array com 20 índices, porém só os declarados são usados. Ao executar este código, dentro if aparece nos índices 0,1, 2, 5, 8, 9, 10,13,16,... e o no else nos índices 3,4,6,7,11,12,14,15, ... Poderiam me auxiliar?
    • Por dudaperrut
      meu programa esta dando falha de segmentação nessa função. 
       
      Uma função que recebe dois vetores, o seu tamanho e uma variável ponteiro. A função deve achar o maior elemento do vetor v1 e o menor elemento do vetor v2. A função deve retornar o valor do maior elemento de v1.
      void *MaiorMenor (float *vet1, float *vet2, int tam, float *maior) { float *menor; int i; maior = (float*)malloc(tam * sizeof(float)); for(maior=0; maior<tam; maior++) { for(i=0; i<tam; i++) { if(*(vet1+(tam-i-1)) > *maior) { *maior = *(vet1+(tam-i-1)); } } } menor = (float*)malloc(tam * sizeof(float)); for(menor=0; menor<tam; menor++) { for(i=0; i<tam; i++) { if(*(vet2+(tam-i-1)) < *menor) { *menor = *(vet1+(tam-i-1)); } } } return (maior); }  
    • Por GustavoMelão
      Vou criar um jogo  e gostaria que os jogadores pudessem redimensionar a imagem  sem perder a qualidade: Tem alguma biblioteca ou jeito de eu usar usar imagens vetoriais no Allegro?
    • Por Jam123
      A classe Pessoa jurídica tem os atributos CNPJ e razão social.
      A classe Pessoa Física tem os atributos CPF e RG.
      A classe Aluno tem os atributos matrícula (inteiro); período (inteiro); quantidade de matérias
      matriculadas no semestre (inteiro); nome do curso (string).
      A classe Estudos tem o atributo Tempo_de_Estudo.
      A classe Professor tem os atributos Formação e quantidade_de_aulas_lecionadas.
      A classe Militar tem os atributos tipo_de_arma e Patente.
      A classe restaurante tem os atributos tipo_de_comida e o preço_do_quilo_da_comida.
      Todas as classes tem um método para inicializar os atributos e um método para imprimir na
      tela os atributos.
    • Por fernando.h.luiz
      Preencha uma matriz (x,y) com números inteiros aleatórios.
      a) Solicite um número do usuário, pesquise se esse número existe na matriz.
      b) Se existir, imprima em qual posição ele se encontra (linha x coluna).
      - Considere que podem haver valores repetidos.
      - Se não existir, imprima uma mensagem de erro.
      c) Trabalhe com alocação dinâmica de memória.

      alguem pode me ajudar ??
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.