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

Ответы 5

  • Извините s:=‘****_=Alphaeus=_**** это что
    • Автор:

      kenya
    • 6 лет назад
    • 0
  • Это как бы защита от бездумного копирования чужих ответов другими участниками Сервиса :)
  • Эту и следующую строку можно просто выбросить
    • Автор:

      braedon
    • 6 лет назад
    • 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.

  • {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.

    • Автор:

      dracula
    • 6 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years