Решение Урок 15 Задача №2. Поиск двух максимумов

Урок 15 Задача №2

Пользователь вводит массив целых чисел из 7 элементов. Найдите из них два самых больших числа и выведите их на экран.

var arr : array[1..7] of integer;
  i, j, maxArr, second_maxArr : integer;
begin
  for i := low(arr) to high(arr) do
  begin
    writeln('Enter integer his index ', i, ':');
    readln(arr[i]);
  end;
  writeln();

  for j := low(arr) to high(arr) do
    if(maxArr < arr[j]) then
      maxArr := arr[j];

  for j := low(arr) to high(arr) do
      if(second_maxArr < arr[j]) and (arr[j] < maxArr) then
        second_maxArr := arr[j];

  writeln('Biggest number in array = ', maxArr);
  writeln();
  writeln('Bigger number in array = ', second_maxArr);
  readln(); // Удержание консоль
end.// Завершение программы  
vedro-compota's picture

for j := low(arr) to high(arr) do
    if(maxArr < arr[j]) then
      maxArr := arr[j];
 

не сработает для отрицательных

_____________
матфак вгу и остальная классика =)

vedro-compota's picture

(arr[j]

понятнее будет если написать:

arr[j] <> maxArr

_____________
матфак вгу и остальная классика =)

Firons's picture

var arr : array[1..7] of integer;
  i, j, maxArr, second_maxArr : integer;
begin
  for i := low(arr) to high(arr) do
  begin
    writeln('Enter integer his index ', i, ':');
    readln(arr[i]);
  end;
  writeln();
  maxArr := arr[1];
  for j := low(arr) to high(arr) do
    if(maxArr < arr[j]) then
      maxArr := arr[j];

  for j := low(arr) to high(arr) do
      if(second_maxArr < arr[j]) and (arr[j] <> maxArr) then
        second_maxArr := arr[j];

  writeln('Biggest number in array = ', maxArr);
  writeln();
  writeln('Bigger number in array = ', second_maxArr);
  readln(); // Удержание консоль
end.// Завершение программы    
vedro-compota's picture

решение засчитано

_____________
матфак вгу и остальная классика =)