var i,j,n,k,l: integer;
A:array[1..10, 1..10] of integer;
B:array[1..5] of integer;
maxAij: integer;
{-----------------------------------------}
function Amax(max, s4et3:integer):integer;
var s4et, s4et1, s4et2: integer;
begin
for s4et:=1 to s4et3 DO
begin
for s4et1:=1 to 10 do
begin
for s4et2:=1 to 10 do
begin
if ((k=s4et1) AND (l=s4et2)) then continue;
if max<(A[s4et1,s4et2]) then
begin
max:=A[s4et1,s4et2];
k:=i;
l:=j;
end;
end;
end;
end;
B[s4et3]:=max;
end;
{--------------------------------}
begin {main}
for i:=1 to 10 do
begin
for j:=1 to 10 do A[i,j]:=4430-2*Random(4430);
end;
B[1]:=Amax(A[1,1], 1);
for n:=2 to 5 do
begin
B[n]:=Amax(B[n-1], n);
write(B[n],' ');
end;
for i:=1 to 5 do write(B[n],' ');
Readln;
end.
несколько максимальных значений в матрице
нужно найти 5 максимальных значений в матрице заполняемой рандумом...
ну нормально заполняется.. ищется тоже нормально вроде как бы...
но вот когда вывожу на печать сохраненные максимальные значения, они почему равны неизвестно откуда взявшемуся числу! такое в матрицу не может быть занесено.. вот... иоэте это какието глюки компилятор?:confused:
Код:
Код:
var i,j,n,k,l: integer;
A:array[1..10, 1..10] of integer;
B:array[1..5] of integer;
maxAij: integer;
{-----------------------------------------}
function Amax(max, s4et3:integer):integer;
var s4et, s4et1, s4et2: integer;
begin
for s4et:=1 to s4et3 DO
begin
for s4et1:=1 to 10 do
begin
for s4et2:=1 to 10 do
begin
{ if ((k=s4et1) AND (l=s4et2)) then continue;}
if max<(A[s4et1,s4et2]) then
begin
max:=A[s4et1,s4et2];
{ k:=i;
l:=j;}
end;
end;
end;
B[s4et]:=max;
end;
end;
{--------------------------------}
begin {main}
for i:=1 to 10 do
begin
for j:=1 to 10 do A[i,j]:=4430-2*Random(4430);
end;
WriteLn;
Amax(A[1,1], 5);
for i:=1 to 5 do write(B,' ');
Readln;
end.
A:array[1..10, 1..10] of integer;
B:array[1..5] of integer;
maxAij: integer;
{-----------------------------------------}
function Amax(max, s4et3:integer):integer;
var s4et, s4et1, s4et2: integer;
begin
for s4et:=1 to s4et3 DO
begin
for s4et1:=1 to 10 do
begin
for s4et2:=1 to 10 do
begin
{ if ((k=s4et1) AND (l=s4et2)) then continue;}
if max<(A[s4et1,s4et2]) then
begin
max:=A[s4et1,s4et2];
{ k:=i;
l:=j;}
end;
end;
end;
B[s4et]:=max;
end;
end;
{--------------------------------}
begin {main}
for i:=1 to 10 do
begin
for j:=1 to 10 do A[i,j]:=4430-2*Random(4430);
end;
WriteLn;
Amax(A[1,1], 5);
for i:=1 to 5 do write(B,' ');
Readln;
end.
единственное что массив Б заполняется одним единственным значением, тоесть максимальным... а нужно найти 5 максимальных.. необзательноже в матрице будет 5 одинаково больших значения...:cool:
аа изобразил :D сначала находим максимальнео в каждой строке, записываем их в массив Б, потом сортируем по убыванию и выводим первые 5.. получаем то что хотели