/******************************************************************************
Welcome to GDB Online.
GDB online is an online compiler and debugger tool for C/C++.
Code, Compile, Run and Debug online from anywhere in world.
*******************************************************************************/
#include <stdio.h>
int main() {
float precioHora, bono, ivaPorcentaje;
int horasMinimas;
int empleados = 0;
int conBono = 0;
int sinBono = 0;
float nominaTotal = 0;
float ivaTotal = 0;
float ivaBono = 0;
float ivaNoBono = 0;
char nombre[50];
int horas;
float neto, iva, total;
char seguir;
// Datos generales
printf("Ingrese el precio por hora trabajada: ");
scanf("%f", &precioHora);
printf("Ingrese el mínimo de horas semanales requeridas: ");
scanf("%d", &horasMinimas);
printf("Ingrese el porcentaje de IVA: ");
scanf("%f", &ivaPorcentaje);
printf("Ingrese el valor del bono: ");
scanf("%f", &bono);
do {
getchar(); // limpiar buffer
printf("Nombre del empleado: ");
fgets(nombre, sizeof(nombre), stdin);
// quitar salto de línea
int i = 0;
while (nombre[i] != '\0') {
if (nombre[i] == '\n') {
nombre[i] = '\0';
break;
}
i++;
}
printf("Horas trabajadas por %s: ", nombre);
scanf("%d", &horas);
// Cálculos
neto = precioHora * horas;
iva = neto * ivaPorcentaje / 100;
total = neto + iva;
if (horas >= horasMinimas) {
total += bono;
conBono++;
ivaBono += iva;
} else {
sinBono++;
ivaNoBono += iva;
}
empleados++;
nominaTotal += total;
ivaTotal += iva;
// Mostrar recibo
printf("--- Recibo para %s ---\n", nombre);
printf("Valor neto: $%.2f\n", neto);
printf("IVA aplicado: $%.2f\n", iva);
printf("Total a pagar: $%.2f\n", total);
getchar(); // limpiar buffer
printf("¿Desea ingresar otro empleado? (s/n): ");
scanf("%c", &seguir);
} while (seguir == 's' || seguir == 'S');
// Promedios
float promIVABono = (conBono > 0) ? ivaBono / conBono : 0;
float promIVANoBono = (sinBono > 0) ? ivaNoBono / sinBono : 0;
float promIVA = (empleados > 0) ? ivaTotal / empleados : 0;
float promTotal = (empleados > 0) ? nominaTotal / empleados : 0;
// Resumen
printf("\n===== RESUMEN FINAL =====\n");
printf("Total de empleados: %d\n", empleados);
printf("Con bono: %d\n", conBono);
printf("Sin bono: %d\n", sinBono);
printf("Valor total de la nómina: $%.2f\n", nominaTotal);
printf("\n--- PROMEDIOS ---\n");
printf("Promedio IVA con bono: $%.2f\n", promIVABono);
printf("Promedio IVA sin bono: $%.2f\n", promIVANoBono);
printf("Promedio general de IVA: $%.2f\n", promIVA);
printf("Promedio total pagado por empleado: $%.2f\n", promTotal);
return 0;
}