int c[m][n][k][l];
и так далее.
Идентификатор элемента многомерного массива аналогичен идентификатору одномерного b[2][3], c[1][3][5] с той лишь разницей, что указывается адрес элемента не в одной, а в нескольких размерностях.
Ввод многомерных массивов возможен такими же двумя способами, как и при вводе одномерных массивов: путем инициализации при описании массивов и поэлементный ввод в циклической операции.
Синтаксис оператора описания двухмерного массива (матрицы) путем его инициализации следующий:
тип имя[n][m]={{эл.11,эл12,…,эл1n}, {эл.21,эл.22,…,эл.2n}, . . . . . . . . . . . . . . . . . {эл.m1,эл.m2,…,эл.mn}}; |
Например: int b[2][3]={{-2,4,0},{15,0,-7}};
Вводом массивов путем инициализации пользуются тогда, когда размер массива небольшой и запись оператора описания при этом не очень громоздка. В противном случае используют поэлементный ввод.
Поэлементный ввод матрицы а(M*N) с клавиатуры имеет вид:
for (i=0; i < M; i++)
for (j=0; j < N; j++)
cin >> a[i][j];
Вывод многомерных массивов осуществляется только поэлементно также как и одномерные массивы. Пример вывода матрицы а(M*N) на экран:
for (i=0; i < M; i++)
{
cout << setw(30)<<” “;
for (j=0; j < N; j++)
cout << setw(6)<< a[i][j]<<” “;
cout<<endl;
}
В этом фрагменте программы оператор cout << setw(30)<<” “; предназначен для создания отступа от левой границы экрана на 30 позиций. Далее с помощью оператора цикла
for (j=0; j < N; j++)
cout << setw(6)<< a[i][j]<<” “;
производится вывод всех элементов строки в один ряд и после этого совершается перевод курсора с помощью оператора cout<<endl; в начало следующей строки. Таким образом выводятся на экран все последующие строки матрицы.