Wyznaczanie wartości minimalnej i maksymalnej z podanych przez użytkownika

0

Hej,
mam problem z zdaniem z języka C. To mój dopiero początek z programowaniem, więc prosiłbym o dokładne wytłumaczenie. A o to treść zadania: Program wczytuje kolejne liczby rzeczywiste aż do momentu gdy użytkownik poda wartość 0, po czym wyświetla sumę , średnią oraz wartość minimalną i maksymalną dla wprowadzonych liczb.

Mam problem z ostatnią częścią zadania: ...wartość minimalną i maksymalną dla wprowadzonych liczb.
A o to co zrobiłem czyli sumę oraz średnią:


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

int main()
{
    int i;
    int suma = 0;
    int ilosc = 0;

    printf("Podaj liczby: \n");
    for (;;) {
        scanf("%d", &i);
        if (i == 0) {
            break;
        }
        suma = suma + i;
        ilosc++;
    }
    if (ilosc > 0) {

        printf("Suma tych liczb wynosi: %d\n", suma);
    }
    printf("Srednia arytmetyczna: %d", suma / ilosc);

    return 0;
}
  • jeszcze chciałbym się zapytać jak zrobić, aby użytkownik mógł wpisać liczby rzeczywiste a nie tylko całkowite?
1

Liczby rzeczywiste: wczytuj double zamiast inta: http://en.cppreference.com/w/cpp/io/c/fscanf
Wartość minimalna i maksymalna: dodatkowe zmienne, jak napotkasz mniejszą/większą od najmniejszej/największej odpowiednio to zmień wartość na nową.

0

Zadeklaruj zmienne "suma" oraz "i" jako float lub double zamiast jako int. No i oczywiście do scanf trzeba podać inny pierwszy argument.

0

Zamieniam inta na double'a przy "i" i "suma" to program sie psuje tzn gdy wciskam 0 jako tą kończącą pętle to nie pokazuje mi się ani średnia ani suma

0

Musisz zmienić typ zmiennej oraz string formatujący w scanfie. Linka do dokumentacji dałem wyżej.

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