С++. Двумерные массивы. Как перемешать столбцы

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

Вам нужно в центр своего внимания взять функцию обмена двух колонок местами. Именно на этой функции построен смешиватель колонок. Функция перемешивания просто использует функцию обмена двух колонок местами.
В функции обмена местами колонок подаётся двойной указатель, который для нас как массив, количество строк и колонок воображаемого нами массива и два числа, обозначающие номера колонок, которые нужно поменять местами. Внутри функции кода очень мало, там непосредственно происходит описание обмена двух значений: какое-то значение одной колонки меняется с соответствующим ему значению другой колонки.
В функции main() нагромождено с виду много, но это только определённая последовательность действий: выделить память указателю -&gt заполнить область памяти значениями -> вывести на экран получившееся -> обменять местами две случайные колонки -> вывести получившееся -> перемешать все колонки -> вывести получившееся -> зачистить память.
Если инфотекст, выводимый в ходе работы программы вам как-то мешает, то вы легко его уберёте самостоятельно.
Функция перемешивания колонок написана таким образом, что происходит обход половины массива и на каждом витке цикла происходит вызов функции обмена двух колонок, при этом мы указали и в качестве первой, и в качестве второй колонки — случайную колонку. Поэтому перемешивание работает здорово.
Все комментарии на сайте проверяются, поэтому ваш комментарий может появиться не сразу. Для вставки кода в комментарий используйте теги: [php]ВАШ_КОД[/php]

Добавить комментарий

Ваш e-mail не будет опубликован.

Поиск

 
     

Случайная книга в электронном формате

Яндекс.Метрика
НАГРАДИ АВТОРА САЙТА
WEBMONEY
R375024497470
U251140483387
Z301246203264
E149319127674

Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов.

Выражаю свою признательность

  • Максиму очень признателен за указание на мои ошибки и неточности.
  • Sergio ===> за оказание помощи в исправлении моих ошибок
  • Gen ===> за правильное стремление помочь другим новичкам и выявления моих ошибок