Задать вопрос
12 октября, 05:26

Удалить из массива все максимальные элементы

паскаль

+3
Ответы (1)
  1. 12 октября, 08:05
    0
    Const

    n = 50;

    var

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

    procedure ShiftRight (ip: integer) ;

    / / сдвигает к началу массива все элементы. расположенные за ip

    var

    i: integer;

    begin

    for i : = ip to n - 1 do a[i] : = a[i + 1];

    a[n] : = - 32768

    end;

    var

    i, j, mx, px: integer;

    begin

    Randomize;

    writeln ('Исходный массив') ;

    mx : = - 100;

    px : = 0;

    for i : = 1 to n do

    begin

    a[i] : = Random (30) - 15;

    write (a[i]:4) ;

    if mx < a[i] then begin

    mx : = a[i];

    px : = i

    end

    end;

    writeln;

    writeln ('Результирующий массив') ;

    if px = n then

    for i : = 1 to n - 1 do writeln (a[i]:4)

    else

    begin

    for i : = 1 to px - 1 do write (a[i]:4) ;

    ShiftRight (px) ;

    i : = px;

    while (i < = n) and (a[i] - 32768) do

    if a[i] < mx then

    begin

    write (a[i]:4) ;

    i : = i + 1

    end

    else ShiftRight (i)

    end;

    writeln

    end.

    Тестовый пример:

    Исходный массив

    1 2 - 13 0 - 2 14 - 15 4 - 6 - 3 14 4 - 10 - 7 - 5 11 - 1 - 10 9 - 10 - 12 14 4 - 9 - 5 - 14 9 - 9 9 5 3 - 10 - 15 - 3 4 - 14 - 10 7 1 - 11 - 8 - 15 5 - 6 9 - 3 9 - 14 - 3 1

    Результирующий массив

    1 2 - 13 0 - 2 - 15 4 - 6 - 3 4 - 10 - 7 - 5 11 - 1 - 10 9 - 10 - 12 4 - 9 - 5 - 14 9 - 9 9 5 3 - 10 - 15 - 3 4 - 14 - 10 7 1 - 11 - 8 - 15 5 - 6 9 - 3 9 - 14 - 3 1
Знаете ответ?
Сомневаетесь в ответе?
Найдите правильный ответ на вопрос ✅ «Удалить из массива все максимальные элементы паскаль ...» по предмету 📘 Информатика, а если вы сомневаетесь в правильности ответов или ответ отсутствует, то попробуйте воспользоваться умным поиском на сайте и найти ответы на похожие вопросы.
Смотреть другие ответы