Как найти максимальное и ПРЕДМАКСИМАЛЬНОЕ число кратное двум в массиве? Нужен код...

+912 голосов
3.9m просмотров

Как найти максимальное и ПРЕДМАКСИМАЛЬНОЕ число кратное двум в массиве? Нужен код (Паскаль) ВАЖНОЕ условие:И максимальное и предмаксимальное нужно найти одним циклом!!!


Информатика (50 баллов) | 3.9m просмотров
Дан 1 ответ
+45 голосов

// PascalABC.NET

begin

 var n := ReadInteger('n =');

 var a := ArrRandom(n, -99, 99);

 a.Println;

 var (max, predmax) := (a[0], a[0]);

 for var i := 1 to a.High do

   if a[i].IsEven then

     if a[i] > max then (max, predmax) := (a[i], max)

     else if (a[i] > predmax) and (a[i] <> max) then predmax := a[i];

 Print(predmax, max)

end.

Объяснение:

Насколько я понял, предмаксимальное число не может быть равно максимальному, даже если в массиве два и более максимальных элементов. Если это не так, удалите условие and (a[i] <> max)

(1.6k баллов)