Autor Tema: Operar con decimales en C arrays uni y multidimensionales en lenguajeC CU00541F  (Leído 4161 veces)

Dimitar Stefanov

  • Experto
  • *****
  • Mensajes: 598
    • Ver Perfil
Buenas noches. Mediante la presente expongo una posible solución del ejercicio CU00541F del curso aprenda C como si estuviera en primero.

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?

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.

Código: [Seleccionar]
#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.
« Última modificación: 12 de Julio 2016, 17:06 por César Krall »

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:CU00541F contadores, arrays uni y multidimensionales en lenguajeC
« Respuesta #1 en: 07 de Julio 2016, 18:30 »
Buenas.

Con lo que se expone en este enlace podrás aclarar tus dudas.

https://www.aprenderaprogramar.com/foros/index.php?topic=4726.msg19246#msg19246

Saludos.  ;D

Dimitar Stefanov

  • Experto
  • *****
  • Mensajes: 598
    • Ver Perfil
Re:CU00541F contadores, arrays uni y multidimensionales en lenguajeC
« Respuesta #2 en: 07 de Julio 2016, 23:53 »
Buenas noches, Pedro.

Gracias por la corrección y por la aportación del hilo. Veo que a tí te pasó lo mismo, jeje.

Gracias y saludos.

 

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".