• Изменить данную программу, так, чтобы она удаляла все отрицательные элементы!
    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.

Ответы 1

  • 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.а вообще правильнее создать еще один массив и переписать туда нужные элементы - куда меньше операций, циклов и затрат памяти. Массив не предназначен для "удаления" элементов в нем
    • Автор:

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

Войти через Google

или

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

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

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