elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Comparacion de vectores
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Comparacion de vectores  (Leído 2,117 veces)
mbxxx103

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Comparacion de vectores
« en: 1 Septiembre 2021, 00:25 am »

Hola a todos necesito que el programa de c me resuelva las condiciones pero no estoy seguro si utilizar un for como lo podria hacer?

d) en qué año hubo más ventas
e) a cada empleado se le pagó un 30% de comisión sobre sus ventas totales
en cada año. ¿Cuántos vendedores ganaron de comisión más de $1500 en
cada año?
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. main(){
  5.    int minima=1000,maxima=0;
  6.    int v19[20],v20[20];
  7.    int i,a,ct=0,ctt=0,prom=0,prom2=0,promg=0, acum=0, acum2=0;
  8.    //enceramos el vetor
  9.    for(i=0;i<20;i++)
  10.        v19[i]=0;
  11.    for(a=0;a<20;a++)
  12.        v20[a]=0;
  13.    //leer las tempeturas y guardar
  14.    printf("\n *** Ingrese las ventas por empleados del 2019 ***");
  15.    for(i=0;i<20;i++){
  16.        printf("\n Empleado N %d: ",i+1);
  17.        scanf("%d",&v19[i]);
  18.        acum=acum + v19[i];
  19.    }
  20.    system("cls");
  21.    printf("\n *** Ingrese las ventas por empleados del 2020 ***");
  22.    for(a=0;a<20;a++){
  23.        printf("\n Empleado N %d: ",a+1);
  24.        scanf("%d",&v20[a]);
  25.        acum2=acum2 + v20[a];
  26.    }
  27.  
  28.    //procesos
  29.    for(i=0;i<20;i++){
  30.        /*if(minima>edad[i])
  31.             minima=edad[i];*/
  32.  
  33.        if(maxima<v19[i])
  34.            maxima=v19[i];
  35.  
  36.        /*if(edad[i]>65)
  37.             ct++;
  38.         if(edad[i]>18 && edad[i]<64 )
  39.             ctt++;*/
  40.  
  41.        prom = acum / v19[i];
  42.    }
  43.  
  44.    for(a=0;a<20;a++){
  45.        /*if(minima>edad[i])
  46.             minima=edad[i];*/
  47.  
  48.        /*if(maxima<edad[i])
  49.             maxima=edad[i]; */
  50.  
  51.        /*if(edad[i]>65)
  52.             ct++;
  53.         if(edad[i]>18 && edad[i]<64 )
  54.             ctt++;*/
  55.  
  56.        prom2 = acum2 / v20[i];
  57.    }
  58.  
  59.    promg = (prom+prom2)/2;
  60.  
  61.    //salidas
  62.    system("cls");
  63.    //printf("\n edad mas baja: %d ",minima);
  64.    printf("\n edad mas alta: %d ",maxima);
  65.    printf("\n\n Promedio de ventas 2019: %d",prom);
  66.    printf("\n\n Promedio de ventas 2020: %d",prom2);
  67.    printf("\n\n Promedio de ventas general: %d",promg);
  68.    //printf("\n Cantidad de personas de la tercera edad es: %d",ct);
  69.    //printf("\n Cantidad de personas mayores de edad es: %d",ctt);
  70.    printf("\n\n");
  71.    system("pause");
  72.  
  73. }


MOD: El código debe ir entre etiquetas de Código GeSHi
MOD: Código formateado



« Última modificación: 1 Septiembre 2021, 02:07 am por K-YreX » En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: Comparacion de vectores
« Respuesta #1 en: 1 Septiembre 2021, 03:12 am »

Antes de resolver tus dudas te diré algunos consejos para mejor el código:
  • main() es una función y como tal debe tener un tipo de retorno. La forma correcta de definir la función main() es:
Código
  1. // Version simplificada (cuando se utilizan argumentos de ejecucion)
  2. int main() {
  3.  //...
  4.  return 0; // Si no se especifica, se incluye implicitamente
  5. }
  6.  
  7. // Version completa (cuando se utilizan argumentos de ejecucion)
  8. int main(int argc, char *argv[]) {
  9.  //...
  10.  return 0; // Si no se especifica, se incluye implicitamente
  11. }

  • Utiliza constantes en vez de "números mágicos" (números literales que aparecen en el código sin explicación: 20). Así si de repente necesitas cambiar ese valor por otro, tan solo tendrás que cambiarlo en la definición y el resto del programa seguirá funcionando correctamente.
Código
  1. const int NUM_EMPLEADOS = 20;
  2.  
  3. int main() {
  4.  int ventas[NUM_EMPLEADOS];
  5.  for(int i = 0; i < NUM_EMPLEADOS; ++i) {
  6.    //...
  7.  }
  8. }

  • Utiliza funciones que hagan una tarea específica. Así tendrás el código más limpio, no repetirás código y podrás reutilizar una función tantas veces como necesites:
Código
  1. int calcularSumaTotal(int array[], const int longitud) {
  2.  int total = 0;
  3.  for(int i = 0; i < longitud; ++i) total += array[i];
  4.  return total;
  5. }
  6.  
  7. int main() {
  8.  int ventas2019[NUM_EMPLEADOS];
  9.  int ventas2020[NUM_EMPLEADOS];
  10.  //...
  11.  
  12.  int totalVentas2019 = calcularSumaTotal(ventas2019, NUM_EMPLEADOS);
  13.  int totalVentas2020 = calcularSumaTotal(ventas2020, NUM_EMPLEADOS);
  14.  //...
  15.  
  16.  int promedioVentas2019 = totalVentas2019 / NUM_EMPLEADOS;
  17.  int promedioVentas2020 = totalVentas2020 / NUM_EMPLEADOS;
  18.  


Ahora sobre tus dudas específicamente:
  • La primera duda ya te la he resuelto en el apartado de crear tus propias funciones.
  • Para calcular la comisión de cada empleado en cada año basta con lo siguiente:
Código
  1. const float PORCENTAJE_COMISION = 30;
  2.  
  3. int main() {
  4.  int ventas2019[NUM_EMPLEADOS];
  5.  //...
  6.  for(int i = 0; i < NUM_EMPLEADOS; ++i) {
  7.    printf("La comision del empleado %d en el 2019 es de: $%.2f\n", (i+1), ventas2019[i] * PORCENTAJE_COMISION / 100.0f);
  8.  }
  9. }

Aparte de eso:
  • Las líneas 41 y 56 no tienen sentido. Repites un cálculo 20 veces para quedarte únicamente con el último resultado.
  • Además en la línea 56 estás utilizando el contador equivocado.

PD: No utilices <system("pause")>. Utiliza mejor <getchar()>. Hace la misma función y requiere de menos recursos del sistema.


En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Comparacion de una concatenacion
Bases de Datos
proteus8 0 1,623 Último mensaje 14 Febrero 2011, 17:01 pm
por proteus8
Comparación Portátiles
Hardware
overxfl0w13 7 5,617 Último mensaje 14 Junio 2012, 15:12 pm
por Khronos14
C++ Mas iteradores, con vectores de vectores ¡ juerga !
Programación C/C++
Orubatosu 1 2,361 Último mensaje 4 Diciembre 2014, 17:18 pm
por Eternal Idol
Procesador comparación
Hardware
Sombracan 3 1,712 Último mensaje 21 Enero 2015, 22:03 pm
por engel lex
Comparación de palabras en C
Programación C/C++
genuine17 2 1,674 Último mensaje 5 Junio 2017, 18:12 pm
por MAFUS
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines