fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #define SUELDO_BASE 800.0
  5.  
  6. float calcular_sueldo_total(int prendas_vendidas);
  7. int leer_entrada_valida();
  8.  
  9. int main() {
  10. int prendas_vendidas;
  11. float sueldo_total;
  12.  
  13. prendas_vendidas = leer_entrada_valida();
  14. sueldo_total = calcular_sueldo_total(prendas_vendidas);
  15.  
  16. printf("El sueldo total diario es: $%.2f\n", sueldo_total);
  17.  
  18. return 0;
  19. }
  20.  
  21. float calcular_sueldo_total(int prendas_vendidas) {
  22. float ganancias = 0;
  23.  
  24. if (prendas_vendidas >= 1 && prendas_vendidas <= 2) {
  25. ganancias = prendas_vendidas * 10;
  26. } else if (prendas_vendidas >= 3 && prendas_vendidas <= 8) {
  27. ganancias = prendas_vendidas * 25;
  28. } else if (prendas_vendidas >= 9 && prendas_vendidas <= 12) {
  29. ganancias = prendas_vendidas * 45;
  30. } else if (prendas_vendidas >= 13 && prendas_vendidas <= 18) {
  31. ganancias = prendas_vendidas * 70;
  32. } else if (prendas_vendidas > 18) {
  33. ganancias = prendas_vendidas * 80;
  34. }
  35.  
  36. return SUELDO_BASE + ganancias;
  37. }
  38.  
  39. int leer_entrada_valida() {
  40. int prendas_vendidas;
  41. char input[100];
  42. char *endptr;
  43.  
  44. while (1) {
  45. printf("Ingrese el número de prendas vendidas: \n");
  46. if (fgets(input, sizeof(input), stdin) == NULL) {
  47. printf("Error al leer la entrada. Intente de nuevo.\n");
  48. continue;
  49. }
  50.  
  51. prendas_vendidas = strtol(input, &endptr, 10);
  52.  
  53. if (endptr == input || *endptr != '\n') {
  54. printf("Entrada inválida. Por favor, ingrese un número entero.\n");
  55. } else if (prendas_vendidas < 0) {
  56. printf("Por favor, ingrese un número no negativo de prendas.\n");
  57. } else {
  58. break;
  59. }
  60. }
  61.  
  62. return prendas_vendidas;
  63. }
Success #stdin #stdout 0s 5292KB
stdin
1
stdout
Ingrese el número de prendas vendidas: 
El sueldo total diario es: $810.00