В массиве A=(a1, а2, ..., аn) удалить все подряд идущие отрицательные элементы, идущие...

0 голосов
147 просмотров

В массиве A=(a1, а2, ..., аn) удалить все подряд идущие отрицательные элементы, идущие вслед за минимальным элементом массива.(Программа с использованием массива и цикла for)Паскаль


Информатика (245 баллов) | 147 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Var
  a, b: array[1..110000] of integer;
  i, n, j, cnt, min: integer;
  fl: boolean; 
begin
  Readln(n);
  for i := 1 to n do
    Read(a[i]);
   min:= a[1];
   j:= 1;
  for i := 2 to n do
    if a[i] < min then 
    begin
      min:= a[i];
       j:= i;
    end;    
   fl := true;
   for i:= 1 to j do
   write(a[i], ' '); 
  for i:= j + 1 to n do
    begin
      if a[i] > 0 then fl := false;
      if (a[i] < 0)and(fl) then continue;
      write(a[i], ' ');    
    end; 
  end.

(8.8k баллов)
0

Если я ввела размерность массива 5

0

Исходный массив:1 -1 2 3 6

0

То у меня вывелось на монитор:1 -1 2 3 6

0

Почему -1 не было удалено?

0

потому что минимальный элемент - "-1",а нужно удалить все "ВСЛЕД ИДУЩИЕ" за этим элементом

0

Извините,а какое решение должно быть?

0

Вопроса не понял сейчас, если честно. По тому условию, что вы написали, я написал правильное решение. Напишите другое услвовие - напишу другое решение

0

если я ввела 5 -1 2 3 6 -2,то что мне выведется на экран

0

5 -1 2 3 6 -2, если 5 -2 -1 2 3 6 , то 5, -2 2 3 6

0

Спасибо большое)