When I run this code and type the gender = M or = F, all conditions are executed as expected. Already when I type sex = m or = f, only the first condition is met, regardless of the age value. Can anyone explain to me the right use and structure of IF / ELSE ?
int main()
{
float salB, idade, medica;
char sexo;
printf(" PROGRAMA 2");
printf("\n_________________________________");
printf("\n\n Informe o sexo do funcionario, digite M para masculino ou F para feminino: ");
scanf("%c",&sexo);
fflush(stdin);
printf("\n Digite o valor do salario bruto: ");
scanf("%f",&salB);
printf("\n Digite a idade: ");
scanf("%f",&idade);
if (sexo == 'm' || sexo == 'M' && idade < 20)
{
medica = (salB*5)/100;
printf("\n O funcionario pagara R$%.2f de assistencia medica.",medica);
}
else
if (sexo == 'm' || sexo == 'M' && idade >= 21 && idade < 40)
{
medica = (salB*7)/100;
printf("\n O funcionario pagara R$%.2f de assistencia medica.",medica);
}
else
if (sexo == 'm' || sexo == 'M' && idade > 40)
{
medica = (salB*10)/100;
printf("\n O funcionario pagara R$%.2f de assistencia medica.",medica);
}
else
if (sexo == 'f' || sexo == 'F' && idade < 20)
{
medica = (salB*2)/100;
printf("\n A funcionaria pagara R$%.2f de assistencia medica.",medica);
}
else
if (sexo == 'f' || sexo == 'F' && idade >= 21 && idade < 40)
{
medica = (salB*5)/100;
printf("\n A funcionaria pagara R$%.2f de assistencia medica.",medica);
}
else
if (sexo == 'f' || sexo == 'F' && idade > 40)
{
medica = (salB*7)/100;
printf("\n A funcionaria pagara R$%.2f de assistencia medica.",medica);
}
else
printf("\n Sexo invalido, tente novamente.");
system("pause > null");
}