Boa tarde,
Estou no 1 semestre de analise e desenvolvimento de sistemas, não consegui tirar a duvida antes das férias, gostaria que alguém pudesse me ajudar. o codigo esta rodando bem em todos os descontos, com exceção do desconto acima do teto que seria de 621.04 para quem ganha acima de 5646.81. o valor sempre apresenta negativo, como corrigir? Segue o código abaixo e o print do "erro". tentar explicar de outra forma, na hora de aparecer o valor do desconto INSS para quem ganha acima de 5646.81 o mesmo ja esta aparecendo o salario-o desconto. quando deveria aparecer somente o desconto de
#include <iostream>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char** argv) {
float salario, inss, ir, sal_liquido;
printf("Informe seu salario bruto:");
scanf("%f", &salario);
if (salario<=1693.72){
inss=salario*0.08;
}
else
if (salario>=1693.73 && salario<=2822.90){
inss=salario*0.09;
}
else
if (salario>=2822.91 && salario<=5646.80){
inss=salario*0.11;
}
else
if (salario>=5646.81){
inss=salario-621.04;
}
if (salario>=1903.99 && salario<=2826.65){
ir=salario*0.075;
}
else
if (salario>=2826.66 && salario<=3751.05){
ir=salario*0.15;
}
else
if (salario>=3751.06 && salario<=4664.68){
ir=salario*0.225;
}
else
if (salario>=4664.69){
ir=salario*0.275;
}
sal_liquido=(salario-inss)-ir;
printf("\nDesconto INSS: %8.2f",inss);
printf("\nDesconto IR: %8.2f",ir);
printf("\nVoce vai receber: %8.2f",sal_liquido);
return 0;
}