Двумерные массивы
До сих пор мы рассматривали только
одномерные массивы, в которых элементы
обозначались одним индексом. Рассмотрим
и массивы больших размерностей.
На С двумерный массив воспринимается
как набор одномерных массивов:
double
a[8][5];
В данном случае имеется 5 одномерных
массивов длины 8 каждый. Первый индекс
изменяется в диапазоне от 0 до 7, второй
– в диапазоне от 0 до 4.
В соответствии с описанием обращение
к двумерному массиву будет:
a[7][3]
Рассмотрим, в качестве типичного примера
применения двумерных массивов, умножение
двух матриц. Напомним, что умножать
можно две такие матрицы, у которых длина
строки первого сомножителя равна длине
столбца второго сомножителя или, что
то же, количество столбцов в первом
сомножителе равно количеству строк во
втором. При этом каждая строка первой
матрицы умножается на каждый столбец
второй по правилу скалярного умножения
векторов. Например:
Программа на С будет:
double a[n][m],b[m][p],c[n][m];
int i,j,k;
for(i=0;i<n;i++)for(j=0;j<p;j++)
{
c[i][j]=0;
for(k=0;k<m;k++)c[i][j]+=a[i][k]*b[k][j];
}