Pers.narod.ru. Алгоритмы. Нахождение максимального (минимального) значения в массиве без использования дополнительной переменной |
Основная реализация очень проста:
imax:=1; for i:=2 to n do if a[i]>a[imax] then imax:=i;
Соответственно, для поиска минимума знак > меняется на <.
Идея в том, что запоминается только номер максимального элемента imax, а для доступа к нему
вполне годится a[imax] без использования дополнительной переменной для хранения значения элемента. Разумеется, в задаче на последовательность, элементы которой не хранятся в памяти одновременно и их нужно вычислять повторно, номер бы не прошёл.
Вся программа:
uses crt;
const n=10;
var i,imax:integer;
a:array [1..n] of integer;
begin
clrscr; randomize;
for i:=1 to n do begin
a[i]:=random(100);
write (a[i],' ');
end;
imax:=1;
for i:=2 to n do if a[i]>a[imax] then imax:=i;
writeln;
write ('Max=',a[imax]);
reset (input); readln;
end.
|
|