var matrix:array[1..7,1..4]of word;
x,y,swap,max,i,j:word;
begin
randomize;
for i:=1 to 7 do
begin
for j:=1 to 4 do
begin
matrix[i,j]:=random(100);
write(' ',matrix[i,j]);
end;
writeln;
end;
max:=matrix[1,1];
x:=1;
y:=1;
for i:=1 to 7 do
for j:=1 to 4 do
if max<matrix[i,j] then
begin
max:=matrix[i,j];
x:=i;
y:=j;
end;
writeln('max:=',max,' x:=',x,' y:=',y);
if x<>1 then
for i:=1 to 4 do
begin
swap:=matrix[1,i];
matrix[1,i]:=matrix[x,i];
matrix[x,i]:=swap;
end;
if y<>1 then
for i:=1 to 7 do
begin
swap:=matrix[i,1];
matrix[i,1]:=matrix[i,y];
matrix[i,y]:=swap;
end;
for i:=1 to 7 do
begin
for j:=1 to 4 do
write(' ',matrix[i,j]);
writeln;
end;
readln;
end.
Перестановки в матрице
Столкнулся я со следующей проблемой.
Задача момента: в матрице 7*4 найти максимальный элемент и путём перестановок строк и столбцов матрицы, нужно поместить этот элемент в верхний левый угол матрицы (A[1,1]). Максимальный элемент я нашёл. И всё.. Как его перемесить -умных мыслей не имеется...
попробуй так:
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
type mas=array[1..7,1..4] of integer;
var M:mas; i,j,R,i_max,j_max,max:integer;
begin
{ TODO -oUser -cConsole Main : Insert code here }
// Ввод элементов массива
for i:=1 to 7 do
for j:=1 to 4 do
begin write('M[',i,',',j,']='); readln(M[i,j]); end;
i_max:=1; j_max:=1; max:=M[1,1];
// Поиск Максимального элемента
for i:=1 to 7 do
for j:=1 to 4 do
if max<M[i,j] then begin i_max:=i; j_max:=j; max:=M[i,j]; end;
writeln('max=',max,'i_max=',i_max,'j_max=',j_max);
R:=-1;
// Обмен строк
for i:=1 to 4 do
begin R:=M[1,i]; M[1,i]:=M[i_max,i]; M[i_max,i]:=R; end;
// Обмен стролбцов
for i:=1 to 7 do
begin R:=M[i,1]; M[i,1]:=M[i,j_max]; M[i,j_max]:=R; end;
// Вывод элементов массива
for i:=1 to 7 do
begin
for j:=1 to 4 do
write(M[i,j]:4);
writeln;
end;
readln;
end.