тип имя массива [индекс 1]
[индекс 2]
[индекс п];
Элементы многомерного массива располагаются в последовательных ячейках оперативной памяти по возрастанию адресов. Между элементами нет разрывов. В памяти ЭВМ элементы располагаются построчно таким образом, что быстрее всего меняется последний индекс.
Пример расположения в памяти ЭВМ двухмерного массива int d[3] [4]
cf[0][0] cf[0][1] cf[0][2] cl[0][3] c/[1][0] cf[1][1] cf[1][2] cl[1][3] cf[2][0] cf[2][1] cf[2][2] cl[2][3]
Пример расположения в памяти ЭВМ трехмерного массива int d[2] [2] [2]
cf[0][0][0] | cf[0][0][1] |
cf[0][1][0] | cf[0][1][1] |
cf[1][0][0] | cf[1][0][1] |
cf[1][1][0] | cf[1][1][1] |
Применение двухмерных массивов.Двумерные массивы, как правило, отождествляются с матрицами, поэтому типовыми задачами, в которых применяются двухмерные массивы, являются задачи с матрицами: транспонирование матриц, вычисление определителя, определение средних значений матрицы и так далее.
Пример.Разработать программу вычисляющую сумму элементов по строкам и столбцам квадратной матрицы 3x3.
#include <stdio.h> #define i 3 #define j 3 main()
{
int data[i][j],s; int k, 1;
printf("n Введите массив data n");
for (k=0; k<i; k++)
{
printf("n");
for (1 = 0; Kj; 1 + +)
{
printf("data[%d][%d] = ", k, 1);
scanf("%d", &data[k][1]); } }
for (k=0; k<i; k++)
{
s = 0;
for (l=0;l<j;l++) s=s+data[k][1];
printf("пСумма элементов %d-n строки равна %d",
k+1, s); }
for (1 = 0; Kj; 1 + +) r | ||||
i | s=0; for (k=0; k<i; k++) s=s+data[k][1]; | |||
} | printf("пСумма %d столбца равна %d.", | 1 + 1, | s) ; | |
} | ge ge | tchar(); tchar(); |