fork download
  1. #include <iostream>
  2. #include <array>
  3. #include <numeric> // Para usar std::accumulate
  4.  
  5. int main() {
  6. const int NUM_VENDEDORES = 3;
  7. const int NUM_DIAS = 7;
  8. int sueldo_base = 800;
  9. std::array<int, 3> bonificaciones = {25, 45, 70};
  10. std::array<std::array<int, NUM_DIAS>, NUM_VENDEDORES> ventas;
  11. std::array<std::array<int, NUM_DIAS>, NUM_VENDEDORES> sueldos;
  12. std::array<int, NUM_VENDEDORES> sueldos_totales;
  13.  
  14. // Leer ventas
  15. for (int vendedor = 0; vendedor < NUM_VENDEDORES; ++vendedor) {
  16. std::cout << "Vendedor " << vendedor + 1 << ":\n";
  17. for (int dia = 0; dia < NUM_DIAS; ++dia) {
  18. std::cout << " Ingrese las ventas del día " << dia + 1 << ": ";
  19. std::cin >> ventas[vendedor][dia];
  20. }
  21. }
  22.  
  23. // Calcular sueldos diarios y totales
  24. for (int vendedor = 0; vendedor < NUM_VENDEDORES; ++vendedor) {
  25. int sueldo_total_vendedor = 0;
  26. for (int dia = 0; dia < NUM_DIAS; ++dia) {
  27. int ventas_dia = ventas[vendedor][dia];
  28. int bonificacion = 0;
  29.  
  30. if (ventas_dia >= 3 && ventas_dia <= 8) {
  31. bonificacion = ventas_dia * bonificaciones[0];
  32. } else if (ventas_dia >= 9 && ventas_dia <= 12) {
  33. bonificacion = ventas_dia * bonificaciones[1];
  34. } else if (ventas_dia >= 13 && ventas_dia <= 18) {
  35. bonificacion = ventas_dia * bonificaciones[2];
  36. }
  37.  
  38. sueldos[vendedor][dia] = sueldo_base + bonificacion;
  39. sueldo_total_vendedor += sueldos[vendedor][dia];
  40. }
  41. sueldos_totales[vendedor] = sueldo_total_vendedor;
  42. }
  43.  
  44. // Ordenar sueldos totales de mayor a menor (Bubble Sort)
  45. for (int i = 0; i < NUM_VENDEDORES - 1; ++i) {
  46. for (int j = 0; j < NUM_VENDEDORES - i - 1; ++j) {
  47. if (sueldos_totales[j] < sueldos_totales[j + 1]) {
  48. // Intercambiar sueldos totales
  49. std::swap(sueldos_totales[j], sueldos_totales[j + 1]);
  50. // Intercambiar datos de vendedores (opcional, para mantener la correspondencia)
  51. std::swap(ventas[j], ventas[j + 1]);
  52. std::swap(sueldos[j], sueldos[j+1]);
  53. }
  54. }
  55. }
  56.  
  57. // Mostrar resultados ordenados
  58. std::cout << "\nSueldos semanales por vendedor (ordenados de mayor a menor):\n";
  59. for (int vendedor = 0; vendedor < NUM_VENDEDORES; ++vendedor) {
  60. std::cout << "Vendedor " << vendedor + 1 << ":\n";
  61. for (int dia = 0; dia < NUM_DIAS; ++dia) {
  62. std::cout << " Día " << dia + 1 << ": Sueldo = " << sueldos[vendedor][dia] << std::endl;
  63. }
  64. std::cout << " Sueldo total semanal: " << sueldos_totales[vendedor] << std::endl;
  65. }
  66.  
  67. return 0;
  68. }
Success #stdin #stdout 0s 5272KB
stdin
4
5
6
7
4
5
3
9
9
9
9
9
9
9
12
12
12
13
13
13
13
stdout
Vendedor 1:
  Ingrese las ventas del día 1:   Ingrese las ventas del día 2:   Ingrese las ventas del día 3:   Ingrese las ventas del día 4:   Ingrese las ventas del día 5:   Ingrese las ventas del día 6:   Ingrese las ventas del día 7: Vendedor 2:
  Ingrese las ventas del día 1:   Ingrese las ventas del día 2:   Ingrese las ventas del día 3:   Ingrese las ventas del día 4:   Ingrese las ventas del día 5:   Ingrese las ventas del día 6:   Ingrese las ventas del día 7: Vendedor 3:
  Ingrese las ventas del día 1:   Ingrese las ventas del día 2:   Ingrese las ventas del día 3:   Ingrese las ventas del día 4:   Ingrese las ventas del día 5:   Ingrese las ventas del día 6:   Ingrese las ventas del día 7: 
Sueldos semanales por vendedor (ordenados de mayor a menor):
Vendedor 1:
  Día 1: Sueldo = 1340
  Día 2: Sueldo = 1340
  Día 3: Sueldo = 1340
  Día 4: Sueldo = 1710
  Día 5: Sueldo = 1710
  Día 6: Sueldo = 1710
  Día 7: Sueldo = 1710
  Sueldo total semanal: 10860
Vendedor 2:
  Día 1: Sueldo = 1205
  Día 2: Sueldo = 1205
  Día 3: Sueldo = 1205
  Día 4: Sueldo = 1205
  Día 5: Sueldo = 1205
  Día 6: Sueldo = 1205
  Día 7: Sueldo = 1205
  Sueldo total semanal: 8435
Vendedor 3:
  Día 1: Sueldo = 900
  Día 2: Sueldo = 925
  Día 3: Sueldo = 950
  Día 4: Sueldo = 975
  Día 5: Sueldo = 900
  Día 6: Sueldo = 925
  Día 7: Sueldo = 875
  Sueldo total semanal: 6450