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?
#include <stdio.h>
#include <stdlib.h>
main(){
int minima=1000,maxima=0;
int v19[20],v20[20];
int i,a,ct=0,ctt=0,prom=0,prom2=0,promg=0, acum=0, acum2=0;
//enceramos el vetor
for(i=0;i<20;i++)
v19[i]=0;
for(a=0;a<20;a++)
v20[a]=0;
//leer las tempeturas y guardar
printf("\n *** Ingrese las ventas por empleados del 2019 ***"); for(i=0;i<20;i++){
printf("\n Empleado N %d: ",i
+1); acum=acum + v19[i];
}
printf("\n *** Ingrese las ventas por empleados del 2020 ***"); for(a=0;a<20;a++){
printf("\n Empleado N %d: ",a
+1); acum2=acum2 + v20[a];
}
//procesos
for(i=0;i<20;i++){
/*if(minima>edad[i])
minima=edad[i];*/
if(maxima<v19[i])
maxima=v19[i];
/*if(edad[i]>65)
ct++;
if(edad[i]>18 && edad[i]<64 )
ctt++;*/
prom = acum / v19[i];
}
for(a=0;a<20;a++){
/*if(minima>edad[i])
minima=edad[i];*/
/*if(maxima<edad[i])
maxima=edad[i]; */
/*if(edad[i]>65)
ct++;
if(edad[i]>18 && edad[i]<64 )
ctt++;*/
prom2 = acum2 / v20[i];
}
promg = (prom+prom2)/2;
//salidas
//printf("\n edad mas baja: %d ",minima);
printf("\n edad mas alta: %d ",maxima
); printf("\n\n Promedio de ventas 2019: %d",prom
); printf("\n\n Promedio de ventas 2020: %d",prom2
); printf("\n\n Promedio de ventas general: %d",promg
); //printf("\n Cantidad de personas de la tercera edad es: %d",ct);
//printf("\n Cantidad de personas mayores de edad es: %d",ctt);
}
MOD: El código debe ir entre etiquetas de Código GeSHi
MOD: Código formateado
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:
// Version simplificada (cuando se utilizan argumentos de ejecucion)
int main() {
//...
return 0; // Si no se especifica, se incluye implicitamente
}
// Version completa (cuando se utilizan argumentos de ejecucion)
int main(int argc, char *argv[]) {
//...
return 0; // Si no se especifica, se incluye implicitamente
}
- 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.
const int NUM_EMPLEADOS = 20;
int main() {
int ventas[NUM_EMPLEADOS];
for(int i = 0; i < NUM_EMPLEADOS; ++i) {
//...
}
}
- 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:
int calcularSumaTotal(int array[], const int longitud) {
int total = 0;
for(int i = 0; i < longitud; ++i) total += array[i];
return total;
}
int main() {
int ventas2019[NUM_EMPLEADOS];
int ventas2020[NUM_EMPLEADOS];
//...
int totalVentas2019 = calcularSumaTotal(ventas2019, NUM_EMPLEADOS);
int totalVentas2020 = calcularSumaTotal(ventas2020, NUM_EMPLEADOS);
//...
int promedioVentas2019 = totalVentas2019 / NUM_EMPLEADOS;
int promedioVentas2020 = totalVentas2020 / NUM_EMPLEADOS;
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:
const float PORCENTAJE_COMISION = 30;
int main() {
int ventas2019[NUM_EMPLEADOS];
//...
for(int i = 0; i < NUM_EMPLEADOS; ++i) {
printf("La comision del empleado %d en el 2019 es de: $%.2f\n", (i
+1), ventas2019
[i
] * PORCENTAJE_COMISION
/ 100.0f); }
}
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.