Многомерные массивы в С++

Задают указанием каждого измерения в квадратных скобках, например, описание двумерного массива из 6 строк и 8 столбцов.
int matr [6][8];
В памяти массив располагается в последовательных ячейках построчно. Многомерные массивы размещаются так, что при переходе к следующему элементу быстрее всего изменяется последний индекс.

Для доступа к элементу многомерного массива указываются все его индексы:
matr[i][j]
или
*(matr[i]+j) или *(*(matr+i)+j).
Это так потому что matr[i] - адрес начала i-й строки массива.

Инициализация многомерного массива

1) Массив представляется как массив массивов, при этом каждый массив заключается в свои фигурные скобки (в этом случае левую размерность при описании можно не указывать),
int mass2 [][2] = { {1, 1}, {0, 2}, {1, 0} };
2) Задается общий список элементов в порядке, в котором элементы располагаются в памяти:
int mass2 [3][2] = {1, 1, 0, 2, 1, 0};
Пример. Найти в целочисленной матрице номер строки с наибольшим количеством нулевых элементов.
#include  
int main(){ 
const int nstr = 4, nstb = 5; // размерности массива 
int b[nstr][nstb]; // описание массива 
int i, j; 
for (i = 0; i < nstr; i++) // ввод массива 
for (j = 0; j < nstb; j++) scanf("%d", &b[i][j]); 
int istr = -1, MaxKol = 0; 
for (i = 0; i < nstr: i++){ // просмотр массива по строкам 
int Коl = 0; 
for ( j = 0; j < nstb; j-b+) if (b[i][j] == 0)Kol++; 
if (Kol > MaxKol){istr = i; MaxKol = Kol;} 
} 
Printf("Исходный массив :\n");
for (i = 0; i < nstr; i++){ 
for (j = 0; j < nstb; j++)printf("%d ", b[i][j]);
printf ("\n"); } 
if (istr == -1)printf("Нулевых элементов нет"); 
else printf("Hoмep строки: "%d", istr); 
return 0;}
Онлайн всего: 1
Гостей: 1
Пользователей: 0

STUDLAB Сообщить про опечатку на сайте