Дан массив интервала [-10;10].Поменяйте местами минимальный положительный элемент и...

0 голосов
48 просмотров

Дан массив интервала [-10;10].Поменяйте местами минимальный положительный элемент и максимальный отрицательный.
В программе паскаль


Информатика (29 баллов) | 48 просмотров
Дан 1 ответ
0 голосов
Правильный ответ
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ArrRandom(ReadInteger('n='),-10,10); a.Println;
  var x1:=a.Where(x->x>0).Min;
  var i1:=a.FindIndex(x->x=x1);
  var x2:=a.Where(x->x<0).Max;<br>  var i2:=a.FindIndex(x->x=x2);
  Swap(a[i1],a[i2]); a.Println
end.

Пример
n= 16
-9 -8 1 -9 2 5 -6 7 5 -9 0 2 -6 -7 3 6
-9 -8 -6 -9 2 5 1 7 5 -9 0 2 -6 -7 3 6
(150k баллов)