Помогите решить задачу.
Дан массив А1,.......Аn. найти максимальный и минимальный элементы и поменять их местами. Вот задача которую я делал:

program zadacha;
const
k=50;
var
a:array[1..k] of integer;
n,i:1..k;
c,v,max,min,prom:integer;
begin
for i:=1 to n do begin (здесь выскакивает ошибка о проверки диапазона)
a[i]:=random(50);
write(a[i],' ');
end;
max:=a[1];
min:=a[1];
for i:=1 to n do begin
if a[i]>max then begin
max:=a[i];
c:=i;
end;
if a[i]<min the begin
min:=a[i];
v:=i;
end;
end;
writeln('max=',max,'min=',min);
prom:=max; (вот с этой строчки и до конца помогите решить)
max:=min;
min:=prom;
writeln;
writeln('Полученный массив');
for i:=1 to n do
write(a[i], ' ');
readln;
end.

1

Ответы и объяснения

2013-11-21T14:24:35+00:00
Program zadacha;
uses crt;
var
a:array[1..1000] of integer;
n,i:integer;
c,v,max,min,prom:integer;
begin
Writeln('Введите n');
readln(n);
for i:=1 to n do begin
a[i]:=random(50);
write(a[i],' ');
end;
max:=a[1];
min:=a[1];
for i:=1 to n do begin
if a[i]>max then begin
                        max:=a[i];
                        c:=i;
                        end;
if a[i]<min then begin
                        min:=a[i];
                        v:=i;
                        end;
end;
writeln('max=',max,'  min=',min);

a[c]:=min;
a[v]:=max;


writeln;
writeln('Полученный массив');
for i:=1 to n do
write(a[i], ' ');
readln;
end.