sig napisał(a)
Bo średnią da się policzyć dopiero po wprowadzeniu wszystkich liczb.
Tak, tyle że samą średnią można obliczyć bez przechowywania wszystkich liczb - wystarczy zapamiętać bieżącą sumę podanych liczb i ich ilość:
var
intSum: Integer = 0;
intCount: Integer = 0;
intNumber: Integer;
begin
repeat
ReadLn(intNumber);
if intNumber <> -1 then
begin
Inc(intSum, intNumber);
Inc(intCount);
end;
until intNumber = -1;
Write('Arithmetic Mean: ', intSum div intCount);
ReadLn;
end.
Natomiast aby wskazać liczbę najbliżej średniej, trzeba mieć z czego wybierać; A jeśli nie przechowasz sobie w pamięci podanych liczb, to nie będziesz miał z czego wybierać - logiczne.