Задать вопрос
2 апреля, 00:10

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

паскаль

+1
Ответы (1)
  1. 2 апреля, 02:54
    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
Знаете ответ на вопрос?
Не уверены в ответе?
Правильный ответ на вопрос 👍 «Удалить из массива все максимальные элементы паскаль ...» по предмету 📗 Информатика. Развернутая система поиска нашего сайта обязательно приведёт вас к нужной информации. Как вариант - оцените ответы на похожие вопросы. Но если вдруг и это не помогло - задавайте свой вопрос знающим оппонентам, которые быстро дадут на него ответ!
Искать готовые ответы