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

Массивы. как в массиве найти 3 наименьших числа не используя сортировку если можно код

Переделаем на Паскаль:
var Min1, Min2, Min3: Double
var n: Integer, A(32767): Double, i: Integer
' Запрашиваем размер массива
Readln(n);
' Формируем массив
for i := 1 To n do
Writeln ("Введите " & i & "-ый член массива");
Readln (A(i));
' Сначала ищем самое наименьшее число
Min1 := A(1);
for i := 2 To n do
If A(i) < Min1 Then Min1 := A(i);
' Теперь ищем второе наименьшее число, которое больше первого, но меньше всех остальных
Min2 := A(1)
for i := 2 To n do
If (A(i) < Min2) AND (A(i) > Min1) Then Min2 := A(i);
' А теперь третье, которое больше второго, но меньше всех остальных
Min3 := A(1)
for i := 2 To n do
If (A(i) < Min3) AND (A(i) > Min2) Then Min3 := A(i);
' И выводим все три числа
Writeln (Min1, Min2, Min3)
End

Дима почему-то пишет конкретное число в 10000000, но не учитывает, что числа могут быть все больше него, и тогда его код не сработает, потому что x(i) так и останется 10000000.
Александр Щербинин
Александр Щербинин
75 584
Лучший ответ
Ертай Анарбеков мне бы паскаль если можно
Ертай Анарбеков а почему если один из минимальных элементов поставить на первое место, то ответ не верный?
n1:=1;
for i:=2 to n do
if n(n1)>x(i) then n1:=i;
min1:=x(n1);
x(n1):=10000000;
n1:=1;
for i:=2 to n do
if n(n1)>x(i) then n1:=i;
min2:=x(n1);
x(n1):=10000000;
n1:=1;
for i:=2 to n do
if n(n1)>x(i) then n1:=i;
min3:=x(n1);
x(n1):=10000000;

Похожие вопросы