Olá amigos, sou muito novo em programação e necessito realizar um programa que leia o INSS com a tabela de cálculo igual a está:
e a tabela do IR igual a está:
ao tentar escrever o código, ele ficou dessa forma:
<>
#include<stdio.h>
#include<stdlib.h>
#include<locale.h>
#include<math.h>
int main()
{
float sal, inss, ir, sal_liq2, sal_liq, aliq, ded;
printf("insira seu salario por favor: R$ ");
scanf("%f",&sal);
if(sal <= 1.247,70)
{
inss = sal * 0.08;
}
else if (sal >= 1.247,71 && sal <= 2.079,50 )
{
inss = sal * 0.09;
}
else if (sal >= 2.079,51 && sal <= 4.159,00 )
{
inss = sal * 0.11;
}
else if (sal >= 4.159,01)
{
inss = sal - 468,00;
}
else if (sal >= 1.710,78 )
{
aliq = 0;
ded = 0;
ir = sal * ir - ded;
}
else if (sal >= 1.710,79 && sal <= 2.563,91 )
{
aliq = 0.075;
ded = 128,31;
ir = sal * ir - ded;
}
else if (sal >= 2.563,92 && sal <= 3.418,59 )
{
aliq = 0.15;
ded = 320,60;
ir = sal * ir - ded;
}
else if (sal >= 3.418,60 && sal < 4.271,59 )
{
aliq = 0.225;
ded = 577,00;
ir = sal * ir - ded;
}
else if (sal >= 4.271,59 )
{
aliq = sal * 0.275;
ded = 790,58;
ir = sal * ir - ded;
}
sal_liq = sal - ir - inss;
printf("Salario: %g\n",sal);
printf("INSS: %g\n",inss);
printf("IR: %g\n", ir);
printf("Salario Liquido: R$%g\n",sal_liq);
system("pause");
return 0;
}
De alguma forma ele está calculando apenas o primeiro bloco do de verdade do INSS, fazendo com que o programa calcule apenas um resultado
Gostaria de saber o que estou fazendo de errado no programa por favor!