Определяются в программе также как и одномерные с указанием размерности каждого индекса в квадратных скобках.
float rain[5][12];
Количество выделяемой памяти рассчитывается как 4*5*12 байт.
Каждый индекс изменяется от 0 до n-1. В памяти все элементы располагаются последовательно, но индексы меняются следующим образом:
//Пример программы ввода кол-ва осадков помесячно за 5 лет и расчета среднего за каждый год и за 5 лет
void main(void){
int i,j;
float mas[5][12], sumyear, sum=0;
for (i=0; i<5; i++){
printf("Ввести кол-во осадков за %d год помесячно\n", i+1);
sumyear=0;
for (j=0; j<12; j++){
scanf ("%f",&mas[i][j]);
sumyear+=mas[i][j];
}
sum+=sumyear/12;
printf(Ср. за %d год = %.2f\n”,sumyear/12);
}
printf(Ср. за 5 лет = %.2f\n”,sum/5);
}
Инициализация многомерных массивов
1. Инициализируем как одномерный массив.
float rain[2][3]={10.2, 8.1, 6.8, 9.2, 7.8, 4.4};
2. Инициализируем каждую строку.
float rain[2][3]={{10.2, 8.1, 6.8},
{9.2, 7.8, 4.4}};
3. Можно инициализировать в строке не все элементы, а только первые указанные.
int array[2][3]={{2, 8},
{9}};
4. Можно не задавать количество строк. Оно будет определяться автоматически по заданным инициализаторам.
int mas[][3]={{10, 8},
{9, 7, 4}};