Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ekzamen_Informatika_otvety.doc
Скачиваний:
53
Добавлен:
11.05.2015
Размер:
443.39 Кб
Скачать

26.Одномерные и многомерные массивы, их инициализация.

Одномерный массив:

В программе одномерный массив объявляется следующим образом:

тип ID_массива [размер] = {список начальных значений};

тип– тип элементов массива;

размер– количество элементов в массиве.

Список начальных значенийиспользуется при необходимости задать начальные значения (инициализировать элементы массива), он может отсутствовать. Значения в списке разделяются запятыми. (Такое задание списка элементов массива допустимо только при его инициализации и недопустимо в операции присваивания).

Примеры объявления массива:

int a[6];

double x[5]={2, 3.5, -4.5e3, 2.34, -.7 };

Если в группе {…} список значений короче, то оставшимся элементам присваивается 0.

Обращение к конкретному элементу массива в программе осуществляется путем записи имени массива и за ним в квадратных скобках - номера элемента, например:

a[0]=1;

a[i]++;

a[3]=a[i]+a[i+1];

Индексы массивов в языке Си начинаются с 0, т.е. в массиве x первый элемент: x[0], второй – x[1], … пятый – x[4].

Размер массива может задаваться только константой или константным выражением. Нельзя задавать массив переменного размера. Для этого существует отдельный механизм – динамическое выделение памяти.

С другой стороны, если требуемое количество элементов массива заранее неизвестно, часто объявляют массив достаточно большого размера, а используют лишь столько из его элементов, сколько нужно. При этом требуется переменная, задающая количество используемых в данный момент элементов массива:

int a[100], n, i;

M: cout<<"Vvedite kolichestvo elementov (ne bolshe 100)";

cin>>n;

if (n>100) goto M;

cout<<"Vvedite elementy:\n";

for (i=0; i<n; i++)

cin >> a[i];

Внимание. В языке Си с целью повышения быстродействия программы отсутствует механизм контроля выхода за границы индексов массивов. При необходимости такой механизм должен быть запрограммирован явно.

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

Многомерные массивы отличаются от одномерных только тем, что каждый элемент характеризуется не одним, а двумя или более индексами. Они используются, например, для хранения таблиц (каждый элемент таблицы имеет 2 индекса - № строки и № столбца).

Декларация многомерного массива имеет следующий формат:

тип ID [размер1] [размер2]…[размерN] =

{ {список начальных значений},

{список начальных значений},

};

Списки начальных значений – атрибут необязательный.

Пример:

int a[3][3]={ {1,2,3}, {4,5,6}, {7,8,9} };

Аналогично, при обращении к конкретному элементу многомерного массива указывается имя массива и затем - последовательно индексы элемента, каждый в квадратных скобках; например:

a[2][1]

a[i+1][k]

Рассмотрим особенности работы с многомерными массивами на конкретном примере двумерного массива (двумерные массивы называют также матрицами):

#include <stdio.h>

void main()

{ int i, j;

int m[3][4] = { { 1, 2, 3, 4}, {11,12,13,14}, {21,22,23,24} };

for (i=0; i<3; i++) {

printf("\n %2d)", i+1);

for (j=0; j<4; j++)

printf(" %3d",m[ i ] [ j ]);

}}

Результаты работы программы:

  1. 1 2 3 4

  2. 11 12 13 14

  3. 21 22 23 24

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]