Ответ в теме: Минимальный и предминимальный элементы и их позиции

      Комментарии к записи Ответ в теме: Минимальный и предминимальный элементы и их позиции отключены
#1832

questioner
Участник

Мне проще написать на Паскале.

var
  ms: array [1..1000] of integer;
  i,n,min1,min2:integer;
begin
  readln(n);
  for i:=1 to n do
    readln(ms[i]);
 
  min1:=maxint;
  min2:=maxint;
  i1:=0; i2:=0;
 
  for i:=1 to n do
  begin
    if ms[i] 14. begin
      min2:=min1;
      min1:= ms[i];
      i2:=i1;
      i1:=I;
    end;
    else
      if ms[i] 22. begin
        min2:=ms[i];
        i2:=I;
      end;
    end;
  writeln(min1,’ ‘,i1, ‘ ‘,min2,’ ‘, i2);
end.

Объяснение кода по строчкам:
1-2) Объявляем массив целочисленных чисел;
3) Объявляем I – счетчик для цикла, n – количество элементов массива, min1 и min2 – значения двух минимальных элементов, i1 и i2 – индексы минимальный элементов соответственно;
4) Начало программы;
5) Считываем с клавиатуры n;
6-7) Задаем цикл, считывающий элементы массива с клавиатуры;
8-9) минимальным элементам присваиваем максимально возможное значение;
10) Индексам задаем начальное значение ноль;
11) Задаем цикл по всем элементам массива;
12) Начало цикла;
13) Задаем условие: текущий элемент меньше min1. Если оно выполняется, то переходим к строке 14, если нет, то к 20.
14) begin;
15) Второй минимальный элемент принимает значение первого;
16) Первый минимальный принимает значение текущего элемента массива.
17) Индексу второго минимального элемента присваиваем значение первого;
18) Индексу первого минимального элемента присваивается текущее значение счетчика;
19) end;
20) Если первое условие(13 строка) не выполнилось, то переходим сюда;
21) Задаем условие: текущий элемент меньше min2.
22) begin;
23) Второму минимальному элементу присваиваем значение текущего элемента;
24) Индексу второго минимального элемента присваиваем текущее значение счетчика.
27) Выводим на экран значения и индексы минимальных элементов.