Определить сумму наибольшего и второго по значению наименьшего элементов. Паскаль. Не...

0 голосов
46 просмотров

Определить сумму наибольшего и второго по
значению наименьшего элементов. Паскаль. Не через массивы.
У меня во внешнем файле есть последовательность из отрицательных и положительных чисел!
1, 2,-3, 4, 5, -6, 7, 8, -9, 10!
Наибольшее число 10, наименьшее число -9, второе по значению наименьшее -6! Я нашел наименьшее и наибольшее, но не пойму как найти второе по значению наименьшее, помогите)


Информатика (305 баллов) | 46 просмотров
0

создай tmp с дубликатом последовательности, в котором наименьшее будет заменено на наибольшее и в новой последовательности наименьшее окажется вторым по значению наименьшим

0

спасибо, попробую

Дан 1 ответ
0 голосов
Правильный ответ

Var
    max, min, prev_min, n: integer;

begin
    max := -10000;
    min := 10000;
    prev_min := 10000;
    repeat
        read(n);
        if n > max then begin
            max := n;
        end;
        if n < min then begin
            prev_min := min;
            min := n;
        end;
    until n = 0;
   
    writeln(max, ' ', prev_min);
end.

(53.1k баллов)
0

смотри, если вначале стоит минимальное, то оно ищет число 2 до минимального, а после минимального может быть еще меньше, и оно его не находит...

0

типа :1,2,3,-345,6,8,9,-17

0

максимальное 9, минимальное -345 и оно найдет 1, а должно найти -17

0

хм

0

var
max, min, prev_min, n: integer;

begin
max := -10000;
min := 10000;
prev_min := 10000;
repeat
read(n);
if n > max then begin
max := n;
end;
if n < min then begin
prev_min := min;
min := n;
end;
if (prev_min > n) and (n > min) then
prev_min := n;
until n = 0;

writeln(max, ' ', prev_min);
end.

0

ничего не пойму, одни отступы на след строку да &ft..

0

ты с телефона читаешь чтоли? у меня нормальным текстом отображается

0