Дана матрица размерности N*N, найти минимальный (максимальный) элемент, и заменить нулями элементы в строке и столбце, на пересечении которых расположен данный элемент.
А вот с эти разобраться не получается, подскажите пожалуйста...
На надо пихать в одну тему сто разных задач, перемещено
Что конкретно н получается ? Не можешь найти мин. элемент ? Не можешь обнулить ? Для начала сходи сюда :
http://forum.pascal.net.ru/index.php?showtopic=2694 + воспользуйся поиском, задача решалась сотни раз.
Будут конкретные впросы, задавай.
Так я вроде в своей теме вопрос задавала
Что не получается, все не получается
Пробую найти миниммальный элемент, а вместо этого нахожу максимальный:
Во первых для решения этой задачи тебе надо искать не значение мин. элемента, а его координаты в матрице, чтобы после это обнулить соответствующую строку и столбец
поиск мин. элемента :
imin := 1;
jmin := 1;
for i := 1 to n do
for j := 1 to m do
if a[i,j] < a[imin,jmin] then begin
imin := i;
jmin := j;
end;
// теперь imin содержит искомую строку, которую надо обнулить, а jmin искомый столбец
Тоесть надо jmin=0 и imin=0 сделать и показать матрицу a[a,j] и ВСЕ ?
Нет .. надо обнулить строку с номером imin, показываю как это делается, столбец сделаешь самостоятельно
(*
обнуление строк с номером imin
*)
for j := 1 to m do a[imin,j] := 0;
Но ведь и значение мин элемента тоже надо показать ???
И что мешает ? writeln(a[imin, jmin]);
Настоятельно рекомендую взять лекции у одногруппников ...
Посмотрите пожалуйста:
Посмотри, подправил :
program test1;
const n=3; m=3;
var
a : array[1..n, 1..m] of integer;
i,j,sum,s,jmin,imin : integer;
begin
writeln('Vvod elementov', n, 'x', m);
imin := 1;
jmin := 1;
for i:=1 to n do
for j:=1 to m do
begin
readln(a[i,j]);
if a[i,j] < a[imin, jmin] then begin
imin := i;
jmin := j;
end;
end;
for i:=1 to n do
begin
writeln;
for j:=1 to m do
write(a[i,j],' ');
end;
writeln;
for j:=1 to m do
a[imin,j]:=0;
for i:=1 to n do
a[i,jmin]:=0;
for i:=1 to n do
begin
writeln;
for j:=1 to m do
write(a[i,j],' ');
end;
readln;
end.
Все с нулями разобрались, кстати а чем я ошиблась...
И еще минимальное число так и не удалось вывести при написании элементарного
writeln(a[imin, jmin]) выводится 0, хотя мин - 1, а при writeln(a[i,j]) выводится максимум
Ты уже затерла минимальное значение нулем... Чтобы этого не происходило - замени
for j:=1 to m do
a[imin,j]:=0;
for i:=1 to n do
a[i,jmin]:=0;
for j:=1 to m do
if j <> jmin then a[imin,j]:=0;
for i:=1 to n do
if i <> imin then a[i,jmin]:=0;
klem, Volvo, вы лучшие, СПАСИБО !!!