МНОГОМЕРНЫЕ МАССИВЫ.


Определяются в программе также как и одномерные с указанием размерности каждого индекса в квадратных скобках.
float rain[5][12];
Количество выделяемой памяти рассчитывается как 4*5*12 байт.
Каждый индекс изменяется от 0 до n-1. В памяти все элементы располагаются последовательно, но индексы меняются следующим образом:

//Пример программы ввода данных в массив
void main(void){
int i,j;
float mas[5][12];
for (i=0; i<5; i++){
printf(«Ввести кол-во осадков за %d год помесячно\n», i+1);
for (j=0; j<12; j++)
scanf («%f»,&mas[i][j]);
}
}
//Определить общее количество осадков в течении 5 лет,
//среднегодовое по каждому году, среднегодовое за 5 лет.
void main (void){
int i,j;
float years, mas[5][12], sum =0;
for (i=0; i<5; i++){
year=0;
for(j=0; j<12; j++)
years+=mas[i][j]; //за каждый год
printf («Количество осадков за %d год %5.2f\n»,i+1,year);
printf («Среднегодовое %5.2f\n»,year/12);
sum+=year;
}
printf («Среднегодовое кол-во осадков за 5 лет %5.2f\n»,sum/5);
}

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

float rain[2][3]={{10.2, 8.1, 6.8},
{9.2, 7.8, 4.4}};

Можно инициализировать в строке не все элементы, а только первые указанные.
int array[2][3]={{2, 8},
{9}};
Можно не задавать количество строк. Оно будет определяться автоматически по заданным инициализаторам.
int mas[][3]={{10, 8},
{9, 7, 4}};