Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Матрицы

Автор: Гил Бейтс 22.05.2007 0:31

Прошу помогите с задачей.

Дана квадратная матрица порядка n, в каждой строке матрицы выбрать наибольший элемент и поменять его с диаганальным элементом этой строки.

Я все сделал, только мне надо чтобы они местами менялись, а у меня диаганальный элемент просто заменяется на главный.



var a: array [1..10, 1..10] of integer;
i, j, n, max, buf: integer;
begin
readln (n); {ввод размерности и матрицы}
for i:=1 to n do
for j:=1 to n do
read (a[i, j]);
for i:=1 to n do
begin
max:= 1; {за максимальный принимаем первый элемент строки (запоминаем индекс)}
for j:=1 to n do
if a[i, j]>a[i, max] then max:= j; {если текущий больше, перезапоминаем индекс}
buf:= a[i, i]; {меняем местами с элементом [i, i] - лежит на главой диагонали}
a[i, i]:= a[i, max];
a[i, max]:= a[i, j];
end;
for i:= 1 to n do begin {вывод}
for j:=1 to n do write (a[i, j], ' ');
writeln;
end;
end.



Автор: Гил Бейтс 22.05.2007 2:15

up

Автор: volvo 22.05.2007 2:23


buf:= a[i, i]; {меняем местами с элементом [i, i] - лежит на главой диагонали}
a[i, i]:= a[i, max];
a[i, max]:= buf; { <--- Ты зачем buf запоминал? }


Автор: Гил Бейтс 22.05.2007 2:44

Точно спасибо