Найти три минимума в массиве - PascalABC.NET
Формулировка задачи:
уважаемые, дана задача мне, найти три минимума в массиве.
дословное условие:
"Напишите программу, которая находит в массиве три минимальных элемента, то есть три первых элемента массива после сортировки по возрастанию.
Входные данные
Первая строка содержит размер массива N . Во второй строке через пробел задаются N чисел – элементы массива. Гарантируется, что 3 < N ≤ 10000 .
Выходные данные
Программа должна вывести в одной строке три минимальных элемента массива в порядке возрастания, разделив их пробелами."
мой код:
но при загрузке этого кода в систему, компьютер выдает только 1 верное решение из 23
в чем ошибка?
Листинг программы
- program MASSIV4Ik;
- var a:array[1..100000] of longint;
- k,l,m,i,n:longint;
- begin
- readln(n);
- for i:=1 to n do
- read(a[i]);
- k:=a[1];
- l:=a[2];
- m:=a[3];
- for i:=4 to n do begin
- if (a[i]<a[1]) or (a[i]<a[2]) or (a[i]<a[3]) then
- if (k>m) and (k>l) then k:=a[i]
- else if (m>k) and (m>l) then m:=a[i]
- else if (l>m) and (l>k) then l:=a[i]
- end;
- if (k>l) and (k>m)
- then if m>l then write(l,' ',m,' ',k)
- else writeln(m,' ',l,' ',k)
- else if (l>k) and (l>m)
- then if k>m then writeln(m,' ',k,' ',l)
- else writeln(k,' ',m,' ',l)
- else if (m>l) and (m>k)
- then if l>k then writeln(k,' ',l,' ',m)
- else writeln(l,' ',k,' ',m);
- end.
Решение задачи: «Найти три минимума в массиве»
textual
Листинг программы
- :=
- (integer.MaxValue, integer.MaxValue, integer.MaxValue)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д