В массиве из 20 целых чисел найдите наибольший элемент среди отрицательных и поменяйте...

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

В массиве из 20 целых чисел найдите наибольший элемент среди отрицательных и поменяйте его местами с первым элементом.
Вот начал делать, а потом не знаю как дальше:

const
k=20;
var
a:array[1..k] of integer;
g,i,max:=integer;
begin
for i:=1 to n do begin
a[i]:=random(20)-10;
write(a[i],' ');
max:=a[i];
for i:=1 to n do
if a[i]<0 then max:=a[i];<br>writeln('max=',max);
end;

Дальше не знаю, там по-моему надо ввести переменную (в моём случае "g") и мне кажется там ошибка в поиске максимально среди отрицательных элементов. Помогите пожалуйста.


Информатика (449 баллов) | 141 просмотров
Дан 1 ответ
0 голосов

Var 
a:array[1..20] of integer;
i,max,c,nom:integer;
begin
max:=-100000000;
for i:=1 to 20 do begin
a[i]:=random(20)-10;
write(a[i],' ');
end;
for i:=1 to 20 do begin
if (a[i]<0) and  (a[i]>max) then  nom:=i;
if (a[i]<0) and  (a[i]>max) then max:=a[i];
end;
writeln;
for i:=1 to 20 do begin
if i=nom then swap(a[nom],a[1]);
end;
for i:=1 to 20 do begin
write(a[i],' ');
end;
writeln('max=',max,');
end.

(20.8k баллов)