40 баллов.(Pascal). Дан одномерный динамический массив A(n), заполненный случайными числами в диапазоне от -30 до 30. Все отрицательные элементы до минимального обнулить. Исходный и изменённый массивы вывести на экран в отдельных строках.
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; 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
Answers & Comments
Verified answer
//Pascal ABC.NET v3.0 сборка 1111Var
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;
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