в двумерном массиве поменять местами строки



Автор Дарья Каплунова задал вопрос в разделе Другие языки и технологии

Подскажите пожалуйста, как в двумерном массиве поменять местами n-строку и m-столбец (Паскаль) и получил лучший ответ

Ответ от Ёергей Полозков[гуру]
чтобы обмен был возможен,матрица (двухмерный массив ARR: array[1..RAZMER,1..RAZMER) должна быть квадратной (RAZMER = длина ряда (размер матрицы))i - индекс, который пробегает от 1 до размера матрицыfor i:=1 to RAZMER doswap(ARR[m,i],ARR[i,n]);[m,i] индекс столбца m[i,n] индекс строки nswap – процедура обмена элементов,вместо неё можно использовать переменную TEMPи писать в цикле вручнуюBEGINTEMP:=ARR[m,i];ARR[m,i]:=ARR[i,n];ARR[i,n]:=TEMP;END;

Ответ от Lioner[гуру]
const n=3;
var a:array[1..n,1..n] of integer;
i,j,m,l:integer;
begin
//заполняем двумерный массив рандомными значениями.
for i:=1 to n do
begin
for j:=1 to n do
begin
a[i,j]:=random(79)+10;
write(a[i,j],' '); //тут же его выводим в удобный вид
end;
writeln;
end;
readln(l,m); //вводим строку и столбец который надо поменять друг с другом.
for i:=1 to n do
begin
swap(a[l,i],a[i,m]); //меняем через цикл
end;
for i:=1 to n do //выводим в удобном виде
begin
for j:=1 to n do
write(a[i,j],' ');
writeln;
end;
end.

Ответ от Вадим Сухотин[гуру]
Оба предыдущих ответа грешат одной ошибкой: элемент, стоящий на пересечении этих строки и столбца, они будут обменивать дважды. Получится примерно вот так.
начальный массив:
1 2 3
1 2 1
4 5 6
Меняем местами вторую строку и третий столбец (показаны три этапа):
Сначала первые элементы столбца и строки:
1 2 1
3 2 1
4 5 6
Затем - вторые:
1 2 1
3 1 2
4 5 6
Затем - третьи:
1 2 1
3 1 6
4 5 2
А теперь сравним с исходным вариантом и видим, что получили лажу. Ведь было так:
1 2 3
1 2 1
4 5 6
Поэтому надо сначала считать целиком строку в одномерный массив, затем заменить её содержимым столбца, а уже потом заменить столбец сохранённым содержимым строки.

Ответ от Metotron[гуру]
Использовать ещё один двумерный массив для промежуточного хранения данных или же с помощью XOR три раза пройтись.

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: Подскажите пожалуйста, как в двумерном массиве поменять местами n-строку и m-столбец (Паскаль)
спросили в String h
Сортировка одномерного массива
Доброго времени суток.

Странная какая-то сортировака у вас. Вот пример сортировки пузырьком.
подробнее...
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*