Привет!Жду помощи профессионалов в этом довольно сложном для меня вопросе.
Условия задачи:Составить программу, которая в двумерном массиве находит самое большое значение и элементы строки и столбца, на пересечении которых он стоит, делает нулевыми.
Вот код. В нем я нашла мах элемент, и запомнила номер столбца и строчки где он находится(с последующим выводом на экран).
Program max_str;
Uses crt;
Const
m=5;
n=6;
var i,j:byte;
a: array [1..m, 1..n] of integer;
max,u,t: integer;
begin
clrscr;
randomize;
for i:=1 to m do
begin
for j:=1 to n do
begin
a[i,j]:=random(100);
write(a[i,j]:4);
end;
writeln;
end;
writeln (' массив:');
max:=a[1,1];
for i:=1 to m do
begin
for j:=1 to n do
begin
if a[i,j]>max then begin
max:=a[i,j];
u:=i;
t:=j;
end;
end;
end;
write (max:4,' ',u ,' ' ,t,' ' );
readln;
end.
for i := 1 to m do a[i, t] := 0;
for j := 1 to n do a[u, j] := 0;
Тточно!! я сама не так поняла задачу! Спасибо огромное!
Добавлено через 7 мин.
что то у меня не получается(
хотя я сделала как Вы сказали. что выводить после цикла for что получилась новая матрица после исходной?
у меня всё это идет таблицей но почему то не правильной((
program max_str;
const
m = 5;
n = 6;
var
i, j : byte;
a : array [1..m, 1..n] of integer;
u, t : integer;
begin
randomize;
writeln('before:');
for i:=1 to m do
begin
for j:=1 to n do
begin
a[i,j]:=random(100);
write(a[i,j]:4);
end;
writeln;
end;
u := 1; t := 1;
for i:=1 to m do
begin
for j:=1 to n do
if a[i, j] > a[u, t] then
begin
u := i; t := j;
end;
end;
{ Нашли строку и столбец, где находится максимум. Выводим... }
writeln;
writeln ('max : ', a[u, t]:4, u:4, t:4);
{ Меняем содержимое строки и столбца на нули }
for i := 1 to m do a[i, t] := 0;
for j := 1 to n do a[u, j] := 0;
{ Выводим итоговый результат: }
writeln ('after:');
for i:=1 to m do
begin
for j:=1 to n do
write(a[i,j]:4);
writeln;
end;
readln;
end.
before:
76 11 24 56 28 77
77 28 42 56 85 43
29 56 15 8 95 68
20 84 63 8 27 84
20 89 94 0 8 26
max : 95 3 5
after:
76 11 24 56 0 77
77 28 42 56 0 43
0 0 0 0 0 0
20 84 63 8 0 84
20 89 94 0 0 26
ой!!volvo! вы не раз уже спасаете!
Я наверно бы никогда не догадалась поставить такое условие if a[i, j] > a[u, t] then
Добавлено через 17 мин.
volvo!
а как сделать чтоб число мах НЕ затиралось тоже нулем??
Вот так попробуй изменить циклы:
for i := 1 to m do if i <> u then a[i, t] := 0;
for j := 1 to n do if j <> t then a[u, j] := 0;