Другие языки программирования и технологии

Помогите решить задачку по информатике!

Всем добрый вечер! Дано не менее трёх натуральных чисел, за которыми следует 0. Определить три наибольших числа среди них. Паскаль и алгоритмический языки приветствуются. Спасибочки!
Без массива :
Read(N); Max1 := N; // Первое
Read(N); if N > Max1 then Max2 := N else begin Max2 := Max1; Max1 := N; end; // Второе
Read(N); if N > Max1 then if N > Max2 then Max3 := N else begin Max3 := Max2; Max2 := N; end else begin Max3 := Max2; Max2 := Max1; Max1 := N; end; // Третье
repeat
Read(N);
if N > 0 then
if N > Max1 then if N > Max2 then if N > Max3 then begin Max1 := Max2; Max2 := Max3; Max3 := N; end else begin Max1 := Max2; Max2 := N; end else Max1 := N;
until N = 0;
WriteLn(Max1, Max2, Max3);
Бекмурат Еспенбетов
Бекмурат Еспенбетов
51 699
Лучший ответ
var
    n, n1, n2, n3: integer;
begin
    write('numbers? ');
    read(n1, n2, n3);
    if n1 < n2 then begin n := n1; n1 := n2; n2 := n end;
    if n2 < n3 then begin n := n2; n2 := n3; n3 := n end;
    if n1 < n2 then begin n := n1; n1 := n2; n2 := n end;
    read(n);
    while n > 0 do begin
        if n > n1 then begin n3 := n2; n2 := n1; n1 := n; end
        else if n > n2 then begin n3 := n2; n2 := n1; end
        else if n > n3 then n3 := n;
        read(n);
    end;
    writeln(n1, ' ', n2, ' ', n3);
end.
Юра Палаткин
Юра Палаткин
56 941
введи их в массив, отсортируй и возьми 3 первых