Jump to content
Fórum Script Brasil
  • 0

Else if lendo valores de outro else if


Alexsander Leal

Question

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 to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.1k
    • Total Posts
      652k
×
×
  • Create New...