Как заполнить массив циклом
Нужно заполнить массив таким образом(сформировать квадратную матрицу):
11111
22222
33333
44444
55555
Не могу сообразить как мне обратиться только к строке или только к столбцу.
Ответы (1 шт):
Можно использовать двумерный массив, тогда обращаетесь к конкретной ячейке:
var array1 = new int[,] { {1, 1 }, {2, 2} }; //Явное заполнение массива
var array2 = new int[2,2]; //массив пустой
var answer = array1[1,1]; //Ответ 2
В таком случае получается матрица произвольного размера.
Заполнить такой массив можно следующим образом:
for(int i = 0; i < arrayColumns; i++)
for(int j = 0; j < arrayRows; j++)
array[i,j] = ...
Обратиться же к строке/столбцу нельзя, т.к. в памяти данные массива все равно расположены в одну строку, и обращаясь по индексу [i, j] вы по сути находите элемент номер j в последовательности под номером i
Пример:
Имея массив var arr[3,3] = new int{{0, 1, 2}, {3, 4, 5}, {6, 7, 8}} для машины он будет выглядеть так: 0, 1, 2, 3, 4, 5, 6, 7, 8. Обратившись к элементу [1, 2] вы от самого первого символа отсчитаете 1*3 элементов(потому что длина каждой строки = 3), а затем еще 2 элемента и получите в ответе 4.