Autor Tema: C (LenguajeC) contadores, arrays o arrays, números aleatorios. CU00541F  (Leído 3792 veces)

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Posible solución al ejercicio CU00541F.

Citar
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?

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>

int main() {
    int clientesEntran[6];
    clientesEntran[0] = 12;    clientesEntran[1] = 0;    clientesEntran[2] = 23;
    clientesEntran[3] = 45;    clientesEntran[4] = 21;    clientesEntran[5] = 0;
    int i = 0;
    int totalClientes = 0;
    int horasSinClientes = 0;
    int mayorNumPersonas = 0;    int horaMayorNumPersonas = 0;
    for (i = 0; i <= 5; i++){
        totalClientes += clientesEntran[i];
        if(clientesEntran[i] == 0) {
            horasSinClientes += 1;
        }
        if(mayorNumPersonas < clientesEntran[i]){
            mayorNumPersonas = clientesEntran[i];
            horaMayorNumPersonas = i + 1;
        }
    }
    printf("En el d%ca de hoy entraron %d clientes al banco.\n", 161,totalClientes);
    printf("Hubo %d horas en las que no entraron clientes. \n", horasSinClientes);
    for (i = 0; i<=5; i++) {
        if(clientesEntran[i] == 0) {
            printf("En la hora %d, no hubo clientes.\n", i+1);
        }
    }
    printf("La hora %d, fue la que mas afluencia tuvo con %d personas.\n", horaMayorNumPersonas, mayorNumPersonas);
    printf("El n\xA3mero medio de personas por hora que entraron al banco fue %d\n", totalClientes/6);
    return 0;
}

Saludos.  ;D

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Hola! Lo veo todo bien; hay una línea que me ha llamado la atención:

printf("El n\xA3mero medio de personas por hora que entraron al banco fue %d\n", totalClientes/6);

Aquí parece que vas a imprimir un entero (%d), pero luego tienes totalClientes/6 que puede dar un valor decimal ¿Esto te funciona bien mostrándonte los resultados con decimales?

Saludos!
Responsable de departamento de producción aprenderaprogramar.com

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Buenas César.

En realidad lo que muestra esa línea es la parte entera del cociente de esa división.
La cambié por esta otra:

Código: [Seleccionar]
printf("El n\xA3mero medio de personas por hora que entraron al banco fue %.2lf\n", totalClientes/6.0);
Decir que para que me hiciese la división con decimales tuve que poner "6.0" porque si ponía solo el "6" me tomaba la división como si fuese entre enteros y solo me mostraba como resultado la parte entera del cociente.

Saludos.

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Sí, se ve que si pones 6 te hace la transformación a entero y para que trabaje con decimales necesita que se especifique 6.0

¡Esto son detalles de los lenguajes! En otros lenguajes a lo mejor no ocurre lo mismo

Saludos!
Responsable de departamento de producción aprenderaprogramar.com

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".