Задать вопрос
7 июля, 16:19

Изменить данную программу, так, чтобы она удаляла все отрицательные элементы!

Type LinMass = array [1 ... 100] of Integer;

Var A : LinMass;

N, i, j, i1 : Integer;

begin

Write ('Количество элементов массива: ');

ReadLn (N);

i1:=0;

For I : = 1 To N Do

Begin

Write ('Введите A[', I, '] ');

ReadLn (A[i]);

if (A[i]<0) and (i1=0) then i1:=i;

End;

if i1=0 then write ('Отрицательных элементов нет')

else

begin

if i1=n then n:=n-1

else

begin

for i:=i1 to n-1 do

A[i]:=A[i+1];

n:=n-1;

end;

writeln ('Удаление первого отрицательного элемента');

For I : = 1 To N Do write (a[i]:6);

end;

end.

+3
Ответы (1)
  1. 7 июля, 17:37
    0
    Var

    A: array [1 ... 100] of Integer;

    N, i, j, k: Integer;

    begin

    Write ('Количество элементов массива: ');

    ReadLn (N);

    k : = 0;

    for i : = 1 To N Do

    begin

    Write ('A[', I, '] = ');

    ReadLn (A[i]);

    {A[i] : = Random (100) - 50;

    write (A[i], ' '); }

    if A[i] < 0 then k : = i;

    end;

    writeln;

    {фильтр, если нет отрицательных}

    if k = 0 then begin

    write ('Отрицательных элементов нет');

    halt;

    end;

    writeln ('Удаление отрицательных элементов');

    k : = 1;

    while (n > 0) and (k < = n) do

    begin

    if A[k] < 0 then begin

    for i : = k to n - 1 do

    A[i] : = A[i + 1];

    n : = n - 1;

    end

    else k : = k + 1;

    end;

    for i : = 1 To N Do

    write (A[i], ' ');

    end.

    а вообще правильнее создать еще один массив и переписать туда нужные элементы - куда меньше операций, циклов и затрат памяти. Массив не предназначен для "удаления" элементов в нем
Знаешь ответ?
Не уверен в ответе?
Найди верный ответ на вопрос ✅ «Изменить данную программу, так, чтобы она удаляла все отрицательные элементы! Type LinMass = array [1 ... 100] of Integer; Var A : LinMass; ...» по предмету 📙 Информатика, а если ответа нет или никто не дал верного ответа, то воспользуйся поиском и попробуй найти ответ среди похожих вопросов.
Искать другие ответы