Предмет: Информатика, автор: begenjov1997

Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит самую большую сумму двух соседних элементов и заменяет на эту сумму все элементы, кратные 3. Гарантируется, что в массиве есть хотя бы один элемент, кратный 3. В качестве результата необходимо вывести измененный массив в обратном порядке, каждый элемент массива выводится с новой строчки. Например, для массива из восьми элементов:
1 2 6 3 2 7 3 4
программа должна вывести (по одному числу в строке) числа:
4 10 7 2 10 10 2 1
Язык Паскаль

Ответы

Автор ответа: Аноним
0

PascalABC.NET 3.4.2, сборка 1837 от 11.10.2018

Внимание! Если программа не работает, обновите версию!

begin

 var a := ArrRandom(30, 0, 10000); // сформировали массив

 a.Println; // вывели его элементы, если не надо, уберите строку

 var smax := a.Pairwise.Select(t -> t[0] + t[1]).Max; // макс. сумма в парах

 a.Reverse.Select(t -> t mod 3 = 0 ? smax : t).Printlines // все остальное

end.

Автор ответа: Alphaeus
2

{PascalABC}

Program Begenjov1997;

const

 n = 30; {Количество элементов массива}

 m = 10000; {Максимально возможное значение элемента}

var

 a:array[1..n] of integer;

 i, sum: integer;

 s:string;

begin

 s:='**** -=Alphaeus=- ****';

 for i:=1 to 22 do begin write(s[i]); sleep(60) end;

{заполняем массив случайными числами}

 writeln; randomize;

 for i:=1 to n do

   begin

     a[i]:=random(m+1);

   end;

{Ищем максимальную сумму двух соседних элементов}

 sum:=a[1]+a[2];

 for i:=2 to n-1 do

     if (a[i]+a[i+1]>sum) then sum:=a[i]+a[i+1];

{Заменяем элементы, кратные 3, наденной суммой}

 for i:=1 to n do

     if (a[i] mod 3 = 0) then  a[i]:=sum;

{Вывод}

 writeln('Массив А в обратном порядке:');

 for i:=0 to n-1 do writeln(a[n-i],'  ');

 writeln();

 writeln('Максимальная сумма двух соседних элементов равна ',sum);

end.


begenjov1997: Извините s:=‘****_=Alphaeus=_**** это что
Alphaeus: Это как бы защита от бездумного копирования чужих ответов другими участниками Сервиса :)
Alphaeus: Эту и следующую строку можно просто выбросить
Похожие вопросы
Предмет: Физика, автор: Александра071