Дана целочисленная прямоугольная таблица размером m*n. Заменить все строки таблицы на строку с максимальным произведением элементов. Паскаль.
Ответы
Ответ дал:
1
const
m=10;
n=6;
var
a:array[1..m,1..n] of integer;
i,j,maxr:integer;
p,maxp:longint;
begin
Randomize;
Writeln('Исходный массив');
maxp:=0;
for i:=1 to m do
begin
p:=1;
for j:=1 to n do
begin
a[i,j]:=Random(99)+1; { интервал [1..99] }
Write(a[i,j]:3);
p:=p*a[i,j]
end;
if maxp<p then begin maxp:=p; maxr:=i end;
Writeln
end;
for i:=1 to m do
for j:=1 to n do a[i,j]:=a[maxr,j];
Writeln('Сформированный массив');
for i:=1 to m do
begin
for j:=1 to n do Write(a[i,j]:3);
Writeln
end
end.
Тестовое решение:
Исходный массив
86 61 76 1 86 64
93 87 34 66 35 13
51 39 57 5 71 49
86 47 26 30 93 80
58 24 59 57 3 79
46 81 17 24 11 37
12 83 56 75 89 16
50 93 57 1 51 64
25 35 69 29 46 73
68 56 68 95 42 62
Сформированный массив
86 47 26 30 93 80
86 47 26 30 93 80
86 47 26 30 93 80
86 47 26 30 93 80
86 47 26 30 93 80
86 47 26 30 93 80
86 47 26 30 93 80
86 47 26 30 93 80
86 47 26 30 93 80
86 47 26 30 93 80
m=10;
n=6;
var
a:array[1..m,1..n] of integer;
i,j,maxr:integer;
p,maxp:longint;
begin
Randomize;
Writeln('Исходный массив');
maxp:=0;
for i:=1 to m do
begin
p:=1;
for j:=1 to n do
begin
a[i,j]:=Random(99)+1; { интервал [1..99] }
Write(a[i,j]:3);
p:=p*a[i,j]
end;
if maxp<p then begin maxp:=p; maxr:=i end;
Writeln
end;
for i:=1 to m do
for j:=1 to n do a[i,j]:=a[maxr,j];
Writeln('Сформированный массив');
for i:=1 to m do
begin
for j:=1 to n do Write(a[i,j]:3);
Writeln
end
end.
Тестовое решение:
Исходный массив
86 61 76 1 86 64
93 87 34 66 35 13
51 39 57 5 71 49
86 47 26 30 93 80
58 24 59 57 3 79
46 81 17 24 11 37
12 83 56 75 89 16
50 93 57 1 51 64
25 35 69 29 46 73
68 56 68 95 42 62
Сформированный массив
86 47 26 30 93 80
86 47 26 30 93 80
86 47 26 30 93 80
86 47 26 30 93 80
86 47 26 30 93 80
86 47 26 30 93 80
86 47 26 30 93 80
86 47 26 30 93 80
86 47 26 30 93 80
86 47 26 30 93 80
Вас заинтересует
1 год назад
6 лет назад