Hola, espero me puedan ayudar, este programa en C, me pide 3 datos, id del empleado, sueldo y estado civil, se supone que con sentencias el pueda extrar el afp, ars y isr, para luego dar el sueldo final, menos estos tres valores, el isr es siempre y cuando un sueldo pase de 35000 pesos, cuando le pongo los datos, me presenta los datos pero no los de afp, ars, isr y sueldo final, que estoy poniendo mal o que es lo que me falta?
Gracias anticipadas.
Codigo:
#include<stdio.h>
#include<conio.h>
#include<string.h>
#define TAMANO 5
char lineas[100]="___________________________________________________________";
struct nomina{
int codigo,sueldo_bruto;
char estado_civil[15];
float sueldo_neto,afp,ars,isr;
};
void cargar(struct nomina vec[TAMANO])
{
int f;
for(f=0;f<TAMANO;f++)
{
printf("Ingrese el codigo del empleado:");
scanf("%i",&vec[f].codigo);
fflush(stdin);
printf("Ingrese el sueldo del empleado:");
scanf("%i",&vec[f].sueldo_bruto);
fflush(stdin);
printf("Ingrese estado civil del empleado:");
gets(vec[f].estado_civil);
}
}
void imprimir(struct nomina vec[TAMANO])
{
int f;
float sueldo_bruto,sueldo_neto,afp=2.87,ars=3.04,isr=5;
for(f=0;f<TAMANO;f++)
{
afp=(sueldo_bruto*2.87)/100;
ars=(sueldo_bruto*3.04)/100;
}
if(sueldo_bruto>35000){
isr=(sueldo_bruto*5)/100;
} else {
isr=0;
}
sueldo_neto=sueldo_bruto-(afp+ars+isr);
printf("\nLos empleados contratados son:\n\n");
printf("\n%s\n",lineas);
printf("| No. |Id |Sueldo bruto |Estado Civil |AFP |ARS |ISR |Sueldo Neto\n");
printf("\n%s\n",lineas);
for(f=0;f<TAMANO;f++)
{
printf("|%d |%i |%i |%s |%i |%i |%i |%i\n", f, vec[f].codigo, vec[f].sueldo_bruto, vec[f].estado_civil, afp, ars, isr, sueldo_neto);
}
}
int main()
{
struct nomina vector[TAMANO];
cargar(vector);
imprimir(vector);
getch();
return 0;
}