Buenas noches. Mediante la presente expongo una posible solución del ejercicio CU00541F del curso aprenda C como si estuviera en primero.
EJERCICIO
Se está realizando un estudio estadístico de los clientes que entran a un banco en cada hora a partir de su hora de apertura durante un día. El banco abre 6 horas al día y los datos de cuántas personas han entrado al banco en cada hora se encuentran almacenados en un array definido como clientesEntran[0], clientesEntran[1], … hasta clientesEntran[5]. Se desea desarrollar un programa que usando bucles y condicionales determine:
a) El total de personas que entraron al banco en el día.
b) Cuántas horas no entró ninguna persona y cuáles fueron.
c) Cuál fue la hora en la que entró el mayor número de personas.
d) El número medio de personas por hora que entraron al banco.
Considerar que en la primera hora entraron 12 personas, en la segunda 0, en la tercera 23, en la cuarta 45, en la quinta 21 y en la sexta 0. ¿Qué resultados muestra el programa?
Nota: en este tipo de ejercicios usamos arrays (arreglos) combinándolos con bucles de forma que para recorrer el array usamos un bucle, nunca escribimos una por una las variables que forman el array excepto si tenemos que asignarles un valor inicial.
#include <stdio.h>
#include <stdlib.h>
int main() {
double clientesEntran[6];
clientesEntran[0]=12;
clientesEntran[1]=0;
clientesEntran[2]=23;
clientesEntran[3]=45;
clientesEntran[4]=21;
clientesEntran[5]=0;
double totalClientes=0;
int horaMaxClientes=0;
double media;
int i;
for(i=0;i<sizeof(clientesEntran)/sizeof(clientesEntran[0]);i++){
totalClientes=totalClientes+clientesEntran[i];
if(clientesEntran[i]==0){
printf("En la hora %d no entro ningun cliente\n",i+1);
}
if(horaMaxClientes<clientesEntran[i]){
horaMaxClientes=i;
}
}
media = totalClientes/6;
printf("El total de clientes que entraron al banco en el dia son: %lf\n", totalClientes);
printf("En la hora %d entro el mayor numero de clientes\n", horaMaxClientes);
printf("El numero medio de personas por hora que entraron al banco es: %lf", media);
return 0;
}
Tengo una duda, ¿por qué si declaro la variable "totalClientes" de tipo int y luego la divido entre un número, por ejemplo:
int totalClientes=101;
double media = totalClientes/6
no puedo imprimir la variable "media" como un double, sino que se imprime como un número entero (int)?
Gracias.