Перестановка строк и столбцов

Пусть надо переставить две строки с индексами i1и i2. Это значит, что для каждого

столбца jнадо поменять местами элементы A[i1][j]и A[i2][j]через временную переменную (она называется temp).

for ( j = 0; j < N; j ++ ) {

temp = A[i1][j];

A[i1][j] = A[i2][j];

A[i2][j] = temp;

}

Преобразование в одномерный массив

Иногда надо скопировать матрицу Aразмером Mна Nв одномерный массив Bразмером

M*N. Очевидно, что при копировании по строкам (сначала первая строка, затем вторая и т.д.)элемент первой строки A[0][j]надо скопировать в B[j], элементы второй строки A[1][j] в B[N+j]и т.д. Отсюда следует, что для любой строки i элемент A[i][j]копируется в B[i*N+j].теперь осталось только в двойном цикле перебрать все элементы матрицы.

for ( i = 0; i < M; i ++ )

for ( j = 0; j < N; j ++ )

B[i*N+j] = A[i][j];

Заметим, что если надо провести какую-то операцию со всеми или некоторыми (стоящими

подряд) элементами матрицы и для одномерного массива уже есть соответствующая процедура, ее можно использовать, учитывая, что имя строки массива (например, A[0]) является указателем на начальный элемент этой строки. При этом надо учитывать, что в памяти элементы матрицы расположены по строкам. Например, функция вычисления суммы элементов (см. массивы) может применяться для матрицы так:

s0 = Sum(A[0], N); // суммастроки 0

s14 = Sum(A[1], 4*N); // суммастрок 1-4

sAll = Sum(A[0], M*N); // сумма всех строк








Дата добавления: 2015-10-05; просмотров: 656;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.