Консультация № 109236
13.11.2007, 16:14
0.00 руб.
0 3 3
А постоянным клиентам скидки есть? Ну реально легкая задача, но что-то я туплю. Дана матрица, найти максимальный элемент в каждой строке. Ввод данных можно не писать.

Обсуждение

Неизвестный
13.11.2007, 16:59
общий
это ответ
Здравствуйте, Артем Глушков!

Задайте матрицу размером в количество столбцов maxArray: array[1..M] of Real;

присвойте первые элементы столбцов исходной матрице NxM isxArray: array[1..N,1..M] of Real
for j:= 1 to M do
maxArray[j]:= isxArray[1, j];
и найдем максимум в каждом столбце
for j:= 1 to M do
for i:= 1 to N do
if maxArray[j] < isxArray[i, j] then maxArray[j]:= isxArray[i,j]
Неизвестный
13.11.2007, 17:28
общий
это ответ
Здравствуйте, Артем Глушков!

В предыдущем ответ идея верна, только я не вижу смысла создавать массив в котором хранятся найденные максимумы, а также зачем изначально этот массив заполнять первыми элементами строк...

Посему привожу свое решение, в котором генерируется матрица из произвольных чисел из диапазона [0; 33). А потом просто "пробегаем" матрицу посторочно - находим максимум и сразу выводим его на экран.

<code>const n=3; m=4;
var a:array [1..n,1..m] of real;
   mx:real;
   i,j:integer;
begin
   randomize;
   for i:=1 to n do
   begin
     for j:=1 to m do
     begin
       a[i,j]:=random(33);
       write(a[i,j]:6:1);
     end;
     writeln;
   end;
   for i:=1 to n do
   begin
     mx:=a[i,1];
     for j:=2 to m do
       if mx < a[i,j] then mx:=a[i,j];
     writeln(mx:4:1);
   end;
end.</code>

Good Luck!!!
Неизвестный
13.11.2007, 22:20
общий
это ответ
Здравствуйте, Артем Глушков!

for i := 0 to n - 1 do
begin
max := a[0, i];
for j := 1 to m - 1 do
if max < a[i, j] then max := max < a[i, j]; // Если ищет не по строкам, а по столбцам,
//значит мы по разному выводим на экран, значит нужно поменять в массиве i и j
//местами, и в строчке № 3 тоже
WriteLN(max, ‘ ‘);
end;
Форма ответа