Другие языки программирования и технологии

Помогите найти ошибку в задачи,Паскаль...

Здесь надо найти наибольший элемент и поставить его первым,он как бэ считает,но когда вводишь большие цифры он ставит наибольшее число первым,но также заменяет то число которое стояло до него...не могу найти ошибку program pr; var a:array [1..5] of integer; x,k,i,e:integer; begin writeln('Vvedite chisla'); x:=a[1]; for i:=1 to 5 do begin readln(a); for k:=1 to 5 do begin if x<a<i> then begin; x:=a; end; end; end; writeln('Naibolshii element v massive' , x); a:=a[1]; a[1]:=x; for i:=1 to 5 do writeln (a[и]); readln; end.
Примерно так должно:
program pr;
var a:array [1..5] of integer;
x,k,i,e:integer;
begin
writeln('Vvedite chisla');
readln(a[1]);
x:=a[1];
k:=1;
for i:=2 to 5 do begin readln(a);
if x<a<i> then begin x:=a; k:=i end;
end;
writeln('Naibolshii element v massive' , x);
e:=a[1];
a[1]:=x;
a[k]:=e;
for i:=1 to 5 do writeln (a);
readln;
end.
Николай Бойко
Николай Бойко
616
Лучший ответ
Если не важно где будет стоять первый элемент, то можно добавить переменную которая будет принимать значения индекса наибольшего элемента, и тогда сделать обмен первого с наибольшим
как-то так. Если не устраивает то можно, что-то со смещением придумать.
var a:array [1..5] of integer;
x,o,i,n:integer;
begin
writeln('Vvedite chisla');
x:=a[1];
for i:=1 to 5 do begin
readln(a[ i]);
if x < a[ i] then begin x:=a[ i]; n:=i; end;
end;
writeln('Naibolshii element v massive' , x);
o:=a[n];
a[n]:=a[1];
a[1]:=o;
for i:=1 to 5 do writeln (a[ i]);
readln;
end.
Роман *
Роман *
20 142
program pr;
var
a:array [ 1..5 ] of integer;
x, k, i:integer;
begin
writeln('Vvedite chisla');
for i := 1 to 5 do
readln(a[ i ]);

x := 1;
for i := 2 to 5 do
if a[ x ] < a[ i ] then
x := i;

writeln('Naibolshii element v massive' , a[ x ] );

k := a[ x ];

a[ x ] := a [ 1 ];
a[ 1 ] := k;

for i := 1 to 5 do
writeln (a[ i ]);
readln;
end.