Двумерният масив може да се дефинира като масив от масиви. 2D масивът е организиран като матрици, които могат да бъдат представени като колекция от редове и колони. Въпреки това, 2D масиви са създадени, за да реализират структура от данни, подобна на релационна база данни. Той осигурява лесно съхраняване на по-голямата част от данни наведнъж, които могат да бъдат предадени на произволен брой функции, където е необходимо.
алгоритъм първо търсене в дълбочина
Декларация на двумерен масив в C
Синтаксисът за деклариране на 2D масива е даден по-долу.
data_type array_name[rows][columns];
Помислете за следния пример.
int twodimen[4][3];
Тук 4 е броят на редовете, а 3 е броят на колоните.
Инициализация на 2D масив в C
В 1D масива не е необходимо да указваме размера на масива, ако декларацията и инициализацията се извършват едновременно. Това обаче няма да работи с 2D масиви. Ще трябва да дефинираме поне второто измерение на масива. Двумерният масив може да бъде деклариран и дефиниран по следния начин.
int arr[4][3]={{1,2,3},{2,3,4},{3,4,5},{4,5,6}};
Пример за двуизмерен масив в C
#include int main(){ int i=0,j=0; int arr[4][3]={{1,2,3},{2,3,4},{3,4,5},{4,5,6}}; //traversing 2D array for(i=0;i<4;i++){ for(j="0;j<3;j++){" printf('arr[%d] [%d]="%d" ',i,j,arr[i][j]); } end of j i return 0; < pre> <p> <strong>Output</strong> </p> <pre> arr[0][0] = 1 arr[0][1] = 2 arr[0][2] = 3 arr[1][0] = 2 arr[1][1] = 3 arr[1][2] = 4 arr[2][0] = 3 arr[2][1] = 4 arr[2][2] = 5 arr[3][0] = 4 arr[3][1] = 5 arr[3][2] = 6 </pre> <h3>C 2D array example: Storing elements in a matrix and printing it.</h3> <pre> #include void main () { int arr[3][3],i,j; for (i=0;i<3;i++) { for (j="0;j<3;j++)" printf('enter a[%d][%d]: ',i,j); scanf('%d',&arr[i][j]); } printf(' printing the elements .... '); for(i="0;i<3;i++)" printf(' '); printf('%d ',arr[i][j]); < pre> <p> <strong>Output</strong> </p> <pre> Enter a[0][0]: 56 Enter a[0][1]: 10 Enter a[0][2]: 30 Enter a[1][0]: 34 Enter a[1][1]: 21 Enter a[1][2]: 34 Enter a[2][0]: 45 Enter a[2][1]: 56 Enter a[2][2]: 78 printing the elements .... 56 10 30 34 21 34 45 56 78 </pre> <hr></3;i++)></pre></4;i++){>
Пример за C 2D масив: Съхраняване на елементи в матрица и нейното отпечатване.
#include void main () { int arr[3][3],i,j; for (i=0;i<3;i++) { for (j="0;j<3;j++)" printf(\'enter a[%d][%d]: \',i,j); scanf(\'%d\',&arr[i][j]); } printf(\' printing the elements .... \'); for(i="0;i<3;i++)" printf(\' \'); printf(\'%d \',arr[i][j]); < pre> <p> <strong>Output</strong> </p> <pre> Enter a[0][0]: 56 Enter a[0][1]: 10 Enter a[0][2]: 30 Enter a[1][0]: 34 Enter a[1][1]: 21 Enter a[1][2]: 34 Enter a[2][0]: 45 Enter a[2][1]: 56 Enter a[2][2]: 78 printing the elements .... 56 10 30 34 21 34 45 56 78 </pre> <hr></3;i++)>
3;i++)>4;i++){>