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