Ir ao conteúdo
  • Cadastre-se

C erros de indentação com varios if's else's


James_Mulder

Posts recomendados

Questão: ler o salario bruto, idade e sexo e descontar % o salario a partir do sexo e idade

masculino <=20 anos - %5 

masculino >20 && <=40 - %7

masculino >40 - %10

feminino <=20 anos - %2 

feminino 0 && <=40 - %5

feminino >40 - %7

 

Estou com 2 problemas (até onde percebi).O primeiro: queria q a mensagem de erro só aparecesse caso não fosse nem 'm' nem 'f' e os calculos para feminino e masculinos parecem ser os mesmos. parece q é desconsiderado a parte: 

if(sexo == 'F'){ if(idade <=20){

valorapagar=(sal_bruto*0.02);}

else if(idade > 20 && idade <=40){

valorapagar=(sal_bruto*0.05); } else if(idade > 40){

} valorapagar=(sal_bruto*0.07);}

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int main(){
/*calcular o valor de assistência médica*/
    char sexo;
    int idade, sal_bruto, valorapagar;
printf("idade: ");
scanf("%d", &idade);
printf("salario bruto: ");
scanf("%d", &sal_bruto);
printf("sexo [M] ou [F]");
scanf("%s", &sexo);
sexo=toupper(sexo);
if(sexo != 'M' || sexo != 'F'){
    printf("erro;");
}if(sexo == 'M'){
    if(idade <=20){
        valorapagar=(sal_bruto*0.05);}
    else if(idade > 20 && idade <=40){
        valorapagar=(sal_bruto*0.07);}
    else if(idade > 40){
        valorapagar=(sal_bruto*0.10);}}
if(sexo == 'F'){
    if(idade <=20){
        valorapagar=(sal_bruto*0.02);}
    else if(idade > 20 && idade <=40){
        valorapagar=(sal_bruto*0.05);
}   else if(idade > 40){
}       valorapagar=(sal_bruto*0.07);}
printf("idade %d\nsalario bruto %d\nvalor a ser pago %d", idade, sal_bruto, sal_bruto-valorapagar);

}

 

adicionado 4 minutos depois

a questão de aparecer printf("erro"); era só colocar && ao invés de || 

esqueçam essa burrada

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@James_Mulder      identando o código , você percebe onde tem algum erro , então seu código poderia ser assim  :

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int main(){
    system("color f9");/* 1º cor fundo 2º cor letra */
    /*calcular o valor de assistência médica*/
    char sexo;
    int idade,sal_bruto,valorapagar;
    printf("idade -----------: ");
    scanf("%d",&idade);
    printf("salario bruto ---: ");
    scanf("%d",&sal_bruto);
    printf("sexo [M] ou [F] -: ");
    fflush(stdin);/* por mudou o tipo da variável */
    scanf("%c",&sexo);/* variável char caractere e não string */
    sexo = toupper(sexo);
    printf("\a\n");
    if(sexo != 'M' && sexo != 'F'){
        printf("erro ;\n\n");
    }
    else{
        if(sexo == 'M'){
            if(idade <= 20){
                valorapagar = sal_bruto * 0.05;
            }
            else{
                if(idade > 20 && idade <= 40){
                    valorapagar = sal_bruto*0.07;
                }
                else{
                    if(idade > 40){
                        valorapagar = sal_bruto * 0.1;
                    }
                }
            }
        }
        else{
            if(idade <= 20){
                valorapagar = sal_bruto * 0.02;
            }
            else{
                if(idade > 20 && idade <= 40){
                    valorapagar = sal_bruto * 0.05;
                }
                else{
                    if(idade > 40){
                        valorapagar = sal_bruto * 0.07;
                    }
                    //valorapagar = sal_bruto*0.07; está fora das chaves
                }
            }
        }
        printf("idade ------------: %d\n",idade                  );
        printf("salario bruto ----: %d\n",sal_bruto              );
        printf("valor a ser pago -: %d\n",sal_bruto - valorapagar);
    }
    printf("\n\n\n");
    return 0;
}

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 comunidades 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

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!