Ir para conteúdo
Fórum Script Brasil
  • 0

Else if lendo valores de outro else if


Alexsander Leal

Pergunta

Galera tenho que fazer um trabalho pra faculdade e uma parte e que tenho que calcular a gratificacao por tempo de servico e ai que esta meu problema quando ponho o sexo 'm' ele le a gratificacao correspondente ao sexo feminino e outra parte tb e que o salario familia e dado a todos os funcionarios menos aos que forem do sexo 'm' e recebam mais que 500 vou por o codigo veem se vocês podem me ajudar não consigo achar nada, agradesço desde já a todos.

#include <stdio.h>

main() {
float sb, ip, gts, gb, sf, sl;
int ts;
char sexo;

printf ("Digite o salario bruto o funcionario: R$ ");
scanf("%f", &sb);
printf("Digite o tempo de servico do funcionario em anos: ");
scanf("%d", &ts);
printf("Digite o sexo do funcionario <F ou M>: ");
scanf(" %c", &sexo);
system("cls");

/*Calculo de impostos*/

if (sb < 200)
printf("Funcionario isento de impostos.\n\n");
else if ((sb == 200) || (sb < 451)) {
ip = (sb * 0.03);
printf("Total de impostos e de: R$ %.2f\n\n", ip);
}
else if ((sb == 450) || (sb < 701)) {
ip = (sb * 0.08);
printf("Total de impostos do funcionario e de: R$ %.2f\n\n", ip);
}
else{
(sb > 700);
ip = (sb * 0.12);
printf("Total de impostos do funcionario e de: R$ %.2f\n\n", ip);
}

/*Gratificacao por tempo de serviço*/

sexo = toupper('m');
sexo = toupper('f');

if ((sb > 500) && (sexo == 'M') && (ts <= 3)){
gts = 20;
printf("O valor da gratificacao por tempo de servico e de: R$ %.2f\n\n", gts);
}

else if ((sb > 500) && (sexo == 'M') && (ts > 3)) {
gts = 30;
printf("O valor da gratificacao por tempo de servico e de: R$ %.2f\n\n", gts);
}

else if ((sb > 500) && (sexo == 'F') && (ts <= 3)) {
gts = 25;
printf("O valor da gratificacao por tempo de servico e de: R$ %.2f\n\n", gts);
}

else if ((sb > 500) && (sexo == 'F') && (ts > 3)) {
gts = 40;
printf("O valor da gratificacao por tempo de servico e de: R$ %.2f\n\n", gts);
}

else if ((sb <= 500) && (sexo == 'M') && (ts <= 4)) {
gts = 23;
printf("O valor da gratificacao por tempo de servico e de: R$ %.2f\n\n", gts);
}

else if ((sb <= 500) && (sexo == 'M') && (ts > 4)) {
gts = 35;
printf("O valor da gratificacao por tempo de servico e de: R$ %.2f\n\n", gts);
}

else if ((sb <= 500) && (sexo == 'F') && (ts <= 4)) {
gts = 28;
printf("O valor da gratificacao por tempo de servico e de: R$ %.2f\n\n", gts);
}

else{
((sb <= 500) && (sexo == 'F') && (ts > 4));
gts = 33;
printf("O valor da gratificacao por tempo de servico e de: R$ %.2f\n\n", gts);
}


/*Gratificação por biênio*/

gb = (ts/2);
gb = ((sb * 0.05) * gb);

if (gb > 0)
printf("A gratificacao por bienio do funcionario e de: R$ %.2f\n\n", gb);
else
printf("O funcionario não possui gratificacao por bienio.\n\n");

/*Salario Familia*/

if ((sexo == 'M') && (sb > 500))
printf("Salario familia R$ %.2f\n\n", 0);
else {
sf = (sb * 0.15);
printf("Salario familia R$ %.2f\n\n", sf);
}


/*Salário Líquido*/

sl = ((sb - ip) + (gts + gb + sf));
printf("O salario liquido do funcionario e de: R$ %.2f\n\n", sl);

/*Categoria*/

if (sl <= 350)
printf("Funcionario mau remunerado.");
else if ((sl > 350) || (sl <= 600))
printf("Funcionario com remuneracao normal.");
else {
(sl > 600);
printf("Funcionario bem remunerado.");
}

getch();
}

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Bom camarada, o problema que vejo é a na forma que o toupper() esta sendo feito.

Veja a logica que acontece com a variável char sexo desdo inicio do programa e me diga o valor que ela ira chegar no if da gratificação por tempo de trabalho

Não seria melhor trocar a estrutura if/else if por um Switch?

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...