Общая форма объявления многомерного массива

тип имя массива [индекс 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();