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. void ordenar_array_descendente(int *array, int size);
  9. float calcular_sueldo_semanal(int ventas[], int num_dias);
  10.  
  11. int main() {
  12. int ventas_semanales[7]; // Arreglo para almacenar ventas diarias de una semana
  13. float sueldo_semanal;
  14.  
  15. printf("Ingrese las ventas diarias para cada uno de los 7 días de la semana:\n");
  16. for (int i = 0; i < 7; i++) {
  17. printf("Día %d: ", i + 1);
  18. ventas_semanales[i] = leer_entrada_valida();
  19. }
  20.  
  21. // Ordenar las ventas de mayor a menor
  22. ordenar_array_descendente(ventas_semanales, 7);
  23.  
  24. // Imprimir ventas ordenadas
  25. printf("\nVentas diarias ordenadas de mayor a menor:\n");
  26. for (int i = 0; i < 7; i++) {
  27. printf("Día %d: %d prendas\n", i + 1, ventas_semanales[i]);
  28. }
  29.  
  30. // Calcular el sueldo semanal
  31. sueldo_semanal = calcular_sueldo_semanal(ventas_semanales, 7);
  32.  
  33. // Imprimir sueldo total de la semana
  34. printf("\nEl sueldo total semanal es: $%.2f\n", sueldo_semanal);
  35.  
  36. return 0;
  37. }
  38.  
  39. float calcular_sueldo_total(int prendas_vendidas) {
  40. float ganancias = 0;
  41.  
  42. if (prendas_vendidas >= 1 && prendas_vendidas <= 2) {
  43. ganancias = prendas_vendidas * 10;
  44. } else if (prendas_vendidas >= 3 && prendas_vendidas <= 8) {
  45. ganancias = prendas_vendidas * 25;
  46. } else if (prendas_vendidas >= 9 && prendas_vendidas <= 12) {
  47. ganancias = prendas_vendidas * 45;
  48. } else if (prendas_vendidas >= 13 && prendas_vendidas <= 18) {
  49. ganancias = prendas_vendidas * 70;
  50. } else if (prendas_vendidas > 18) {
  51. ganancias = prendas_vendidas * 80;
  52. }
  53.  
  54. return SUELDO_BASE + ganancias;
  55. }
  56.  
  57. int leer_entrada_valida() {
  58. int prendas_vendidas;
  59. char input[100];
  60. char *endptr;
  61.  
  62. while (1) {
  63. printf("Ingrese el número de prendas vendidas: ");
  64. if (fgets(input, sizeof(input), stdin) == NULL) {
  65. printf("Error al leer la entrada. Intente de nuevo.\n");
  66. continue;
  67. }
  68.  
  69. prendas_vendidas = strtol(input, &endptr, 10);
  70.  
  71. if (endptr == input || *endptr != '\n') {
  72. printf("Entrada inválida. Por favor, ingrese un número entero.\n");
  73. } else if (prendas_vendidas < 0) {
  74. printf("Por favor, ingrese un número no negativo de prendas.\n");
  75. } else {
  76. break;
  77. }
  78. }
  79.  
  80. return prendas_vendidas;
  81. }
  82.  
  83. void ordenar_array_descendente(int *array, int size) {
  84. for (int i = 0; i < size - 1; i++) {
  85. for (int j = i + 1; j < size; j++) {
  86. if (array[j] > array[i]) {
  87. int temp = array[i];
  88. array[i] = array[j];
  89. array[j] = temp;
  90. }
  91. }
  92. }
  93. }
  94.  
  95. float calcular_sueldo_semanal(int ventas[], int num_dias) {
  96. float sueldo_total_semanal = 0;
  97.  
  98. for (int i = 0; i < num_dias; i++) {
  99. sueldo_total_semanal += calcular_sueldo_total(ventas[i]);
  100. }
  101.  
  102. return sueldo_total_semanal;
  103. }
  104.  
Success #stdin #stdout 0s 5272KB
stdin
3
4
5
6
7
8
9
stdout
Ingrese las ventas diarias para cada uno de los 7 días de la semana:
Día 1: Ingrese el número de prendas vendidas: Día 2: Ingrese el número de prendas vendidas: Día 3: Ingrese el número de prendas vendidas: Día 4: Ingrese el número de prendas vendidas: Día 5: Ingrese el número de prendas vendidas: Día 6: Ingrese el número de prendas vendidas: Día 7: Ingrese el número de prendas vendidas: 
Ventas diarias ordenadas de mayor a menor:
Día 1: 9 prendas
Día 2: 8 prendas
Día 3: 7 prendas
Día 4: 6 prendas
Día 5: 5 prendas
Día 6: 4 prendas
Día 7: 3 prendas

El sueldo total semanal es: $6830.00