Задан одномерный массив X(N). Вычислить сумму отрицательных элементов этого массива....

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

Задан одномерный массив X(N).
Вычислить сумму отрицательных элементов этого массива. Записать ее модуль на место элемента, стоящего после максимального среди кратных трём. Если такого элемента нет, то выдать сообщение (максимум на последнем месте, или в массиве нет кратных трём элементов). Результат вывести на экран.


Информатика (59 баллов) | 41 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

// PascalABC.NET 3.0, сборка 1144 от 16.01.2016
begin
  var n:=ReadInteger('n=');
  var a:=ArrRandom(n,-50,50);
  Writeln('Исходный массив'); a.Println;
  var se:=a.Where(x->x mod 3=0);
  if se.Count=0 then
    Writeln('В массиве нет элементов, кратных трем')
  else begin
    var b:=se.Max;
    var i:=0;
    while a[i]<>b do Inc(i);
    if i=n-1 then Writeln('Максимальный элемент - последний')
    else begin
      Writeln('Результирующий массив');
      a[i+1]:=abs(a.Where(x->x<0).Sum); a.Println<br>      end
    end
end.

Тестовое решение:
n= 15
Исходный массив
-24 -38 15 -33 -40 -18 21 34 20 49 -19 29 29 38 -41
Результирующий массив
-24 -38 15 -33 -40 -18 21 213 20 49 -19 29 29 38 -41

(142k баллов)