Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Pandemia en 19 de Junio 2016, 22:28

Título: Acumuladores, arrays uni y multidimensionales en C aleatorios LenguajeC CU00541F
Publicado por: Pandemia en 19 de Junio 2016, 22:28
Buenas noches amigos aquí os dejo una posible solución al ejercicio CU00541F del tutorial de programación en C.

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

int main()
{
    int personasEntran[6];
    personasEntran[0] = 12;
    personasEntran[1] = 0;
    personasEntran[2] = 23;
    personasEntran[3] = 45;
    personasEntran[4] = 21;
    personasEntran[5] = 0;
    int i = 0;
    int totalPersonas = 0;
    int horasSinPersonas = 0;
    int mayorNumeroDePersonas = 0;
    int horaMayornumeroPersonas = 0;

    while(i <= 6)
    {
        totalPersonas += personasEntran[i];
        i=i+1;
        if(personasEntran[i] == 0)
        {
            horasSinPersonas += 1;
        }
        if(mayorNumeroDePersonas < personasEntran[i])
        {
            mayorNumeroDePersonas = personasEntran[i];
            horaMayornumeroPersonas = i +1;
        }
    }
    printf("\nEl total de personas que entraron en el banco en el d%ca de hoy fueron %d personas.\n", 161,totalPersonas);
    printf("\nEl total de horas que no entro ninguna persona en el banco fue de %d hora\\s\n",horasSinPersonas);
    while(i <= 6)
    {
        i=i+1;
        if(personasEntran[i] == 0)
        {
            printf("\n\tEn la hora %d, no hubo personas.\n", i+1);
        }
    }
    printf("\nLa hora %d, es la que tuvo el mayor n\xA3mero de personas con %d personas.\n", horaMayornumeroPersonas,mayorNumeroDePersonas);
    printf("\nEl n\xA3mero medio de personas por hora que entraron en el banco fue de %d.\n", totalPersonas/6);
    return 0;


}


Saludos y gracias por vuestro tiempo....  :D
Título: Re:Acumuladores, arrays uni y multidimensionales en C aleatorios LenguajeC CU00541F
Publicado por: César Krall en 24 de Junio 2016, 21:51
Hola! Encuentro un problema en tu código. Si sumamos las personas nos sale:

12
23
45
21

101 personas

Sin embargo al ejecutar tu código me ha salido esto:

Citar
El total de personas que entraron en el banco en el día de hoy fueron 105 personas.

El total de horas que no entro ninguna persona en el banco fue de 2 hora\s

La hora 4, es la que tuvo el mayor número de personas con 45 personas.

El número medio de personas por hora que entraron en el banco fue de 17.

Aquí parece que hay un error. Intenta revisar el código y determinar dónde tienes el error.

Saludos!
Título: Re:Acumuladores, arrays uni y multidimensionales en C aleatorios LenguajeC CU00541F
Publicado por: Pandemia en 25 de Junio 2016, 11:53
Aquí lo dejo rectificado, no me fije en inicializar los while a cinco ya que luego se incrementa 1 con la variable i.

Dejo el código nuevo:

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

int main()
{
    int personasEntran[6];
    personasEntran[0] = 12;
    personasEntran[1] = 0;
    personasEntran[2] = 23;
    personasEntran[3] = 45;
    personasEntran[4] = 21;
    personasEntran[5] = 0;
    int i = 0;
    int totalPersonas = 0;
    int horasSinPersonas = 0;
    int mayorNumeroDePersonas = 0;
    int horaMayornumeroPersonas = 0;

    while(i <= 5)
    {
        totalPersonas += personasEntran[i];
        i=i+1;
        if(personasEntran[i] == 0)
        {
            horasSinPersonas += 1;
        }
        if(mayorNumeroDePersonas < personasEntran[i])
        {
            mayorNumeroDePersonas = personasEntran[i];
            horaMayornumeroPersonas = i +1;
        }
    }
    printf("\nEl total de personas que entraron en el banco en el d%ca de hoy fueron %d personas.\n", 161,totalPersonas);
    printf("\nEl total de horas que no entro ninguna persona en el banco fue de %d hora\\s\n",horasSinPersonas);
    while(i <= 5)
    {
        i=i+1;
        if(personasEntran[i] == 0)
        {
            printf("\n\tEn la hora %d, no hubo personas.\n", i+1);
        }
    }
    printf("\nLa hora %d, es la que tuvo el mayor n\xA3mero de personas con %d personas.\n", horaMayornumeroPersonas,mayorNumeroDePersonas);
    printf("\nEl n\xA3mero medio de personas por hora que entraron en el banco fue de %d.\n", totalPersonas/6);
    return 0;


}


Saludos y gracias por la corrección.