Двумерен масив

Определение

, например:

float a [3] [4], b [5] [10];

Дефиниция A е масив от 3 * 4 (3 реда 4 колони), B е масив от 5 * 10 (5 реда 10 колони). Забележи, че

float a [3, 4], b [5, 10];

не е лесна за разбиране, програма на език C и резултатите от нейната работа:

 #include int main (int Argc, const char * argv []) {int Array [3] [5] = {0}; // Define a two-dimensional array (3 rows 5 columns) int Temp = 0 ; // Set a temporary integer variable to assign a value for the array for (int A = 0; a 

резултатът от операцията е (за лесно разглеждане, завършване в таблица):

масив [0] [0] = 1

array [0] [1] = 2 < / p>

масив [0] [2] = 3

масив [0] [3] = 4

масив [0] [4] = 5

масив [1] [0] = 6

масив [1] [1] = 7

Масив [1] [2] = 8

масив [1] [3] = 9

масив [1] [4] = 10

масив [2] [1] = 12

масив [2] [2] = 13

array [2] [3] = 14 < / p>

масив [2] [4] = 15

преглед

Двуизмерен масив a [m] [n], това е M ред, N-колона двуизмерен масив. Задайте [P] [q] за първи елемент от A, т.е. двумерен масив Долният индекс от P до M + P, долен индекс на колона от q до n + q, натиснете "Поредност на приоритета на реда" съхранение Когато е съхранен, адресът на елемент a [i] [j] се изчислява като:

LOC (a [i] [ J]) = LOC (a [p] [q]) + (i - p) * n + (j - q)) * t

При съхраняване по "ред на приоритет на колона", адресът се изчислява до:

LOC (a [i] [j]) = LOC (a [p] [q]) + ((j - q) * m + (i - p)) * t

Съхранявайте поне необходимия брой клетки (M-P + 1) * (N-Q + 1) * T побайт

Основна операция

Transposition матрица

// където A, B е M * N матрица:

Two-dimensional array

 void track (Matrix A, Matrix B) {INT I, J; for (i = 0; I 

матрица phase Add

 //) A, B, C is M * N матрица: Void AddMat (Matrix C, Matrix A, Matrix B) {INT I, J; for (i = 0; I 

матрица multiplied

 // wherein A is M * n матрица, B is N * 1 матрица, C is M * 1 матрица Void Mutmat (Matrix C, Matrix A, Matrix B ) {INT I, J, K; For (i = 0; i 

свързано понятие

C ++ динамичен 2D масив:

към оформяне Например, ROW е броят на редовете, а COL е броят на числата

int ** данни; // съхранява указател на 2D масив (сочещ към указателя към указателя. Дата = x [0] [0] от адреса. Такъв стандарт е по-добър. Тъй като резултатът от Sizeof (Дата) е 4 不 不 二 二 数 数 组)

 // The following implementation How to apply for a memory Data = new int * [rot]; for (int K = 0; k 
 // Assignment, for example, DATA [0] [0] = 5; // = 5 = 5 = 5 (called 0 row 0 columns in C ++) to 5 // Delete Memory for (int) i = 0; I 

Вижте

матрица

  • матрица

  • sparse матрица

Related Articles
TOP