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 Felipe Soares Santos
      Ao digitar os valores, os resultados nao sao exibidos na tela.
      obs:programa nao terminado.
       
       
       
       
      #include<iostream>
      #include<stdlib.h>
      using namespace std;
      class Pessoa{
          char nome[100];
          char cpf[50];
          char endereco[50];
          char telefone[50];
          public:
               char CadastroPessoa(char){
                  cout << "\nInforme o nome : ";
                  fflush(stdin);
                  cin>>nome;
                  fflush(stdin);
                  
              }
              char CadastroCpf(char){
                  cout << "\nInforme o cpf : ";
                  fflush(stdin);
                  cin>>cpf;
                  fflush(stdin);
              }
              char CadastroEndereco(char){
                  cout << "\nInforme o endereco : ";
                  fflush(stdin);
                  fflush(stdin);
                  cin>>endereco;
              }
              char CadastroTelefone(char){
                  cout << "\nInforme o telefone : ";
                  fflush(stdin);
                  cin>>telefone;
              }
      };
      class Funcionario: public Pessoa{
          int horario, HorasExtras;
          int num_matricula;
          public:
              int func_horario(int){
                  cout << "\nInforme o horario do funcionario : ";
                  fflush(stdin);
                  cin >>horario;
                  return(horario); 
              }
              int func_horaExtra(int){
                  cout << "\nInfome o numero de horas extras : ";
                  fflush(stdin);
                  cin >> HorasExtras;
                  return(HorasExtras);
              }
              int func_numMatricula(int){
                  cout <<"\nInfome o numero de matricula";
                  fflush(stdin);
                  cin>>num_matricula;
                  return(num_matricula);
              }
      };
      class Professor:public Pessoa{
          char materia[100], data_admissao[30]; 
          int salario;
          public:
              char Prof_materia(char){
                  cout<<"\nInforme a materia lecionada pelo professor : ";
                  fflush(stdin);
                  cin>>materia;
                  
              }
              char Prof_DataAdmi(char){
                  cout<<"\nInforme a data de adimissao do professor : ";
                  fflush(stdin);
                  cin>>data_admissao;
              }
              int Prof_Salario(string){
                  cout<<"\nInforme o salario do professor :";
                  fflush(stdin);
                  cin>>salario;
                  return(salario);
              }
      };
      class Aluno:public Pessoa{
          string turma, curso, mate_matri; 
          int ch;
          public:
              string Aluno_turma(string){
                  cout<<"\nInforme a turma do aluno : ";
                  cin>>turma;
                  return(turma);
              }
              string Aluno_curso(string){
                  cout<<"\nInforme o curso do aluno ";
                  cin>>curso;
                  return(curso);
              }
              string Aluno_Materia_matri(string){
                  cout<<"\nQuais materias o aluno esta matriculado ? ";
                  cin>>mate_matri;
                  return(mate_matri);
              }
              int Aluno_CH(string){
                  cout<<"\nQual a carga horaria do aluno ? ";
                  cin>>ch;
                  return(ch);
              }
      };
      int main(){
          char x;
          int menu; 
          int a;
          Funcionario f1;
          Professor p1;
          Aluno a1;
          cout<<"\nInforme o numero de cadastro que deseja inserir : ";
          cin>>a;
          char vn[a], vcp[a],vend[a],vtele[a],vhor[a],vnmat[a],vext[a],vmat[a],vdaad[a],vsala[a],vtur[a],vcurso[a],vmatric[a],vch[a];
          
          do{
              cout<<"\nDigite 1 para cadastrar FUNCIONARIO --- 2 Para cadastrar PROFESSOR --- 3 Para cadastrar ALUNO ";
              cin>>menu;
              switch(menu){
                  case 1:
                      for(char i=1; i<=a; i++){
                          cout<<"\n***FUNCIONARIO" << i << "****" ;
                          vn=f1.CadastroPessoa(x);
                          vcp=f1.CadastroCpf(x);
                          vend=f1.CadastroEndereco(x);
                          vtele=f1.CadastroTelefone(x);
                          vhor=f1.func_horario(x);
                          vext=f1.func_horaExtra(x);
                          vnmat=f1.func_numMatricula(x);
                      }
                      for(int i=1; i<=a;i++){
                          cout<<"\---nPara funcionario"<<i;
                          fflush(stdin);
                          cout<<"\nNome : " << vn;
                          fflush(stdin);
                          cout<<"\nCPF : " << vcp;
                          fflush(stdin);
                          cout<<"\nEndereco : " <<vend;
                          fflush(stdin);
                          cout<<"\nTefone para contado : " << vtele;
                          fflush(stdin);
                          cout<<"\nHorario de trabalho : " <<vhor;
                          fflush(stdin);
                          cout<<"\nHoras extras do funcionario : " << vext;
                          fflush(stdin);
                          cout <<"\nNumero de matricula do funcionario : "<< vnmat;
                          fflush(stdin);
                      }
                      break;
                      
              }
          } while(menu!=1);
      }
       
    • Por ph1
      //#include <iostream>
      #include <cstdlib>
      #include <stdio.h>
      using namespace std;
      int main()
      {
      setlocale(LC_ALL, "Portuguese");
      int a,b,c,d,i,e,f,g,h;
      cout << "Entre com os valores da primeira fracao: ";
      cin >> a;
      cin >> b;
      cout << "Entre com os valores da segunda fracao: ";
      cin >> c;
      cin >> d;
      e = ((a*d)+(b*c));
      f = b * d;
      congela aqui: cout << "A soma das fracoes é:  " << e << "/" << f << "\n";
      //i = 0;
      //if (e % i == 0) || (f % i == 0) //dessa forma não pode, parenteses isolados.
      if (e % i == 0 || f % i == 0)//correto
      //if ((e % i == 0) || (f % i == 0))//correto
           cout << "A simplificação nao é possivel\n";
      /*
      for (i=2;i<=10;i++)
      {
       if((e % i != 0) || (f % i != 0))
          {
             g = e / i;
             h = f / i;
             cout << "\nO resultado da simplificação da fracao é:\n  " << g << "/" << h;
          }
      */
      system("pause");
      return 0;
      }
      }
      Tentei de vários maneiras, e descobri  que quando chega para mostrar o resultado da fração, o programa congela, não sei qual o motivo, para mim está montado certo. Será que é o tipo de variável? Obrigado.
    • Por enzofornetti
      Olá pessoas. Estou começando em programação, c++. Fui tentar realizar um loop em uma programação antiguinha minha. Mas, no final, o programa não "usa" o scanf e volta para o começo. Podem me dizer o problema? Já agradeço a paciência aushuahs
       
       
      #include <stdio.h>
      #include <conio.h>
      #include <stdlib.h>
      #include <math.h>
      int main()
      {
          float v;
          float i;
          float r;
          char op,ob;
          int banana = 1;
          
          while(banana = 1)
          {
          
          printf("Eae meu brother, o que deseja calcular?\n\nCorrente - digite 'i' e pressione Enter\nDDP - digite 'v' e pressione Enter\nResistencia - digite 'r' e pressione Enter\n");
          scanf("%c",&op);
          
          if(op == 'v')
          {
              printf("Resistencia: ");
              scanf("%f", &r);
              
              printf("Corrente: ");
              scanf("%f", &i);
              
              v=r*i;
              
              printf("DDP: %0.8f",v);
              
              printf("\nEletro > Info > Mecanica");
          }
          else
          {
              if(op == 'i')
              {
                  printf("DDP: ");
                  scanf("%f",&v);
                  
                  printf("Resistencia: ");
                  scanf("%f",&r);
                  
                  i=v/r;
                  
                  printf("Corrente: %0.8f",i);
                  printf("\nEletro > Info > Mecanica");
              }
              else
              {
                  if(op == 'r')
                  {
                      printf("Corrente: ");
                      scanf("%f",&i);
                      
                      printf("DDP: ");
                      scanf("%f",&v);
                      
                      r=v/i;
                      
                      printf("Resistencia: %0.8f",r);
                      printf("\nEletro > Info > Mecanica");
                   
                  }
                  else
                  {
                      printf("Brother, recomece");
                  }
              }
              
          }
          printf("\n\nDeseja calcular novamente?\n\nn - Nao\ns - Sim\n");
          scanf("%c",&ob);
          
          if(ob == 's')
          {
              banana = 1;
          }
          else
          {
              banana = 2;
          }
      }
      }
    • Por enzofornetti
      Olá pessoas. Estou começando em programação, c++. Fui tentar realizar um loop em uma programação antiguinha minha. Mas, no final, o programa não "usa" o scanf e volta para o começo. Podem me dizer o problema? Já agradeço a paciência aushuahs
      #include <stdio.h>
      #include <conio.h>
      #include <stdlib.h>
      #include <math.h>
      int main()
      {
          float v;
          float i;
          float r;
          char op,ob;
          int banana = 1;
          
          while(banana = 1)
          {
          
          printf("Eae meu brother, o que deseja calcular?\n\nCorrente - digite 'i' e pressione Enter\nDDP - digite 'v' e pressione Enter\nResistencia - digite 'r' e pressione Enter\n");
          scanf("%c",&op);
          
          if(op == 'v')
          {
              printf("Resistencia: ");
              scanf("%f", &r);
              
              printf("Corrente: ");
              scanf("%f", &i);
              
              v=r*i;
              
              printf("DDP: %0.8f",v);
              
              printf("\nEletro > Info > Mecanica");
          }
          else
          {
              if(op == 'i')
              {
                  printf("DDP: ");
                  scanf("%f",&v);
                  
                  printf("Resistencia: ");
                  scanf("%f",&r);
                  
                  i=v/r;
                  
                  printf("Corrente: %0.8f",i);
                  printf("\nEletro > Info > Mecanica");
              }
              else
              {
                  if(op == 'r')
                  {
                      printf("Corrente: ");
                      scanf("%f",&i);
                      
                      printf("DDP: ");
                      scanf("%f",&v);
                      
                      r=v/i;
                      
                      printf("Resistencia: %0.8f",r);
                      printf("\nEletro > Info > Mecanica");
                   
                  }
                  else
                  {
                      printf("Brother, recomece");
                  }
              }
              
          }
          printf("\n\nDeseja calcular novamente?\n\nn - Nao\ns - Sim\n");
          scanf("%c",&ob);
          
          if(ob == 's')
          {
              banana = 1;
          }
          else
          {
              banana = 2;
          }
      }
      }
    • Por ph1
      Fiz o exercício, mas não sei porque não está funcionando.
      { Escreva um algoritmo que calcule e escreva a soma dos dez primeiros termos da seguinte serie:   2/500 - 5/450 + 2/400 - 5/350 + ... }
      #include <iostream>
      #include <cstdlib>
      #include <stdio.h>
      using namespace std;
      int main()
      {
      setlocale(LC_ALL, "Portuguese");
      int i, denominador;
      float s;
      denominador = 500;
      s = 0;
      for (i=1;i<=10;i++)
         {
          if ((i % 2) != 0)
          {
             s = s + (2/denominador);
          }
          else
          {    
             s = s - (5/denominador);
             
          }
          denominador = denominador - 50;
          cout << s << "/" << denominador;
          
         }
         
      return 0;
      }
       
      Dá sempre 0250. Não descubro o erro.
×

Informação importante

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