Proszę o gotowiec: program wypisujący średnią podanych liczb, oraz minimalną i maksymalną wartość

0

Witam,
Mam bardzo duży problem z napisaniem programu na zajęcia z programowania. Treść zadania to : napisać program, który pobiera od użytkownika ciąg liczb
dodatnich (wprowadzenie liczby 0 kończy sekwencję danych wejściowych) i wyświetla:
największą liczbę ciągu
najmniejszą liczbę ciągu
wartość średnią wprowadzonych liczb
Czy mógłbym prosić kogoś o pomoc w napisaniu tego pozornie łatwego programu w C ? Jak na razie każdy z moich pomysłów jest bezskuteczny.
Z góry dziękuję

2
#include <stdio.h>
#include <stdlib.h>

unsigned max(unsigned *array, size_t size)
{
    size_t i = 0;
    unsigned result = array[i];
    for(; i < size; ++i)
    {
        if(array[i] > result) result = array[i];
    }
    return result;
}

double avg(unsigned *array, size_t size)
{
    size_t i = 0;
    double sum = 0;
    for(; i < size; ++i)
    {
        sum += array[i];
    }
    return sum / (size - 1);
}

int main()
{
    size_t buffer_size = 5;
    unsigned *buffer = malloc(buffer_size * sizeof(unsigned));
    unsigned number = 0, count = 0;
    do
    {
        scanf("%u", &number);
        if(count >= buffer_size)
        {
            unsigned *temp = realloc(buffer, (buffer_size += 5) * sizeof(unsigned));
            if(temp) buffer = temp;
            else
            {
                free(buffer);
                buffer = NULL;
                break;
            }
        }
        buffer[count++] = number;
    }
    while(number != 0);

    printf("Max: %u\nAvg: %f\n", max(buffer,count), avg(buffer,count));

    if(buffer) free(buffer);
    return 0;
}
0

Dziękuję bardzo :D

0

Istnieje rzecz jasna piękniejsze (dużo) rozwiązanie tego problemu ale najpierw choć pokaż nam co już masz, co chociaż sam zrobiłeś...

1 użytkowników online, w tym zalogowanych: 0, gości: 1