Массивы. Найти 2 максимальных элемента массива - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Надо найти 2 максимальных члена массива. Подскажите, в чём ошибка?

Решение задачи: «Массивы. Найти 2 максимальных элемента массива»

textual
Листинг программы
const
    n = 10; { ×èñëî ýëåìåГ*òîâ Г¬Г*Г±Г±ГЁГўГ* }
var
    arr: array[1..n] of integer;
    i, max1, max2, temp: integer;
begin
    { Г‡Г*ïîëГ*ГїГҐГ¬ Г¬Г*Г±Г±ГЁГў ñëó÷Г*Г©Г*ûìè ýëåìåГ*ГІГ*ìè ГЁ âûâîäèì ГҐГЈГ® Г*Г* ГЅГЄГ°Г*Г* }
    Randomize;
    Write('ÑãåГ*åðèðîâГ*Г*Г*ûé Г¬Г*Г±Г±ГЁГў:');
    for i := 1 to n do begin
        arr[i] := random(100);
        Write(' ', arr[i]);
    end;
    WriteLn;
    
    { Äëÿ Г*Г*Г·Г*Г«Г* ïðåäïîëîæèì, Г·ГІГ® ïåðâûå ýëåìåГ*ГІГ» Г¬Г*Г±Г±ГЁГўГ* ÿâëÿþòñÿ Г¬Г*ГЄГ±ГЁГ¬Г*ëüГ*ûìè }
    { (ÏðåäïîëîãГ*ГҐГІГ±Гї, Г·ГІГ® Гў Г¬Г*Г±Г±ГЁГўГҐ ГҐГ±ГІГј õîòÿ ГЎГ» äâГ* ýëåìåГ*ГІГ*) }
    max1 := arr[1];
    max2 := arr[2];
    { ГЏГіГ±ГІГј áîëüøèé ГЁГ§ Г*ГЁГµ áóäåò Гў max1, Г* ìåГ*ГјГёГЁГ© Гў max2 }
    if max1 < max2 then begin
        temp := max1;
        max1 := max2;
        max2 := temp;
    end;
    
    { ÏðîñìГ*òðèâГ*ГҐГ¬ îñòГ*ГўГёГЁГҐГ±Гї ýëåìåГ*ГІГ» }
    for i := 3 to n do begin
        { Åñëè ñëåäóþùèé ýëåìåГ*ГІ áîëüøå, Г·ГҐГ¬ ìèГ*ГЁГ¬Г*ëüГ*ûé ГЁГ§ óæå Г§Г*ïîìГ*ГҐГ*Г*ûõ, Г§Г*ïîìèГ*Г*ГҐГ¬ ГҐГЈГ® }
        if arr[i] > max2 then max2 := arr[i];
        { Óäîñòîâåðÿåìñÿ, Г·ГІГ® áîëüøèé ГЇГ® ïðåæГ*åìó Гў max1 }
        if max1 < max2 then begin
            temp := max1;
            max1 := max2;
            max2 := temp;
        end;
    end;
    
    WriteLn('ГЊГ*ГЄГ±ГЁГ¬Г*ëüГ*ûé ýëåìåГ*ГІ - ', max1);
    WriteLn('Ñëåäóþùèé Г§Г* Г*ГЁГ¬ - ', max2);
end.

Объяснение кода листинга программы

  1. Г-èñëî ýëåìåГòîâ Г¬ГГ±Г±ГЁГўГ* - массив из 10 элементов
  2. var i, max1, max2, temp: integer;
  3. Г‡ГïîëГГїГҐГ¬ Г¬ГГ±Г±ГЁГў ñëó÷ГГ©Гûìè ýëåìåГГІГìè ГЁ âûâîäèì ГҐГЈГ® ГГ ГЅГЄГ°ГГûé Г¬ГГ±Г±ГЁГў: - заголовок программы
  4. Äëÿ ГГГ·Гëà ïðåäïîëîæèì, Г·ГІГ® Гў Г¬ГГ±Г±ГЁГўГҐ ГҐГ±ГІГј õîòÿ ГЎГ» äâà ýëåìåГГІГ) - поиск двух максимальных элементов массива
  5. ГЏГіГ±ГІГј áîëüøèé ГЁГ§ ГГЁГµ áóäåò Гў max1, à ìåГ*ГјГёГЁГ© Гў max2 - сортировка массива методом сортировки выбором
  6. Åñëè ñëåäóþùèé ýëåìåГГІ áîëüøèû, Г·ГҐГ¬ ìèГГЁГ¬ГëüГûé ГЁГ§ ГіГ¦Г̀ - поиск второго максимального элемента массива
  7. Óäîñòîâåðÿåìñÿ, Г·ГІГ® áîëüøèé ГЇГ® ïðåæГ*åìó Гў max1 - сортировка массива методом сортировки выбором
  8. WriteLn('ГЊГГЄГ±ГЁГ¬ГëüГûé ýëåìåГГІ - ', max1);
  9. WriteLn('Ñëåäóþùèé çà ГГЁГ¬ - ', max2);
  10. end. - завершение программы

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.333 из 5
Похожие ответы