double arrow

Многомерные массивы

Определяются в программе также как и одномерные с указанием размерности каждого индекса в квадратных скобках.

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}};






Сейчас читают про: