Pascal. Дан одномерный динамический массив A(n), заполненный случайными числами в...

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

Pascal. Дан одномерный динамический массив A(n), заполненный случайными числами в диапазоне от -30 до 30. Все отрицательные элементы до минимального обнулить. Исходный и изменённый массивы вывести на экран в отдельных строках.


Информатика (473 баллов) | 101 просмотров
0

Не пишите, если не знаете!

0

Это как: "Все отрицательные элементы до минимального обнулить."

0

Что такое "все отрицательные до минимального"?

0

Минимальный отрицательный не трогать?

0

Но тогда надо писать не "до минимального", а "кроме минимального"...

0

не понимаю условтя, уточните!

0

или речь об элементах, расположенных от начала массива до минимального элемнета, не включая этот жлемент?

0

Пацанва, спасибо Вам!

Дано ответов: 2
0 голосов
Правильный ответ

Обнуляются все отрицательные элементы, расположенные от начала массива до минимального элемента.

// PascalABC.NET 3.1, сборка 1179 от 29.02.2016
begin
  var n:=ReadInteger('n=');
  var a:=ArrRandom(n,-30,30); a.Println;
  var m:=a.Min;
  var i:=0;
  while a[i]<>m do begin
    if a[i]<0 then a[i]:=0;<br>    Inc(i)
    end;
  a.Println
end.

Тестовое решение:
n= 10
-26 -25 -7 11 26 -13 12 -29 -15 -13
0 0 0 11 26 0 12 -29 -15 -13

(142k баллов)
0 голосов

//Pascal ABC.NET v3.1 сборка 1172

Var
 ar:array of integer;
 n,i,min,mini:integer;
begin
randomize;
min:=2147483647;
 writeln('Введите размерность:');
 readln(n);
 setlength(ar,n);
 writeln('Array:');
  for i:=0 to n-1 do
   begin
    ar[i]:=random(-30,30);
    write(ar[i]:4);
    if min>=ar[i] then
     begin
      min:=ar[i];
      mini:=i;
     end;
   end;
  for i:=0 to mini-1 do
   if ar[i]<0 then ar[i]:=0;<br> writeln;
 writeln('Final array:');
  for i:=0 to n-1 do
   write(ar[i]:4);
end.

Пример ввода:
5
Пример вывода:
Array:
  -3 -26  -2  18 -21
Final array:
   0 -26  -2  18 -21

(38.6k баллов)