Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Билет №2.Одномерный массив. Доступ к элементам....doc
Скачиваний:
13
Добавлен:
15.04.2019
Размер:
168.96 Кб
Скачать

458. Доступ к элементам массива

Значения, которые хранятся в массиве, называются элементами массива. В следующей программе ELEMENTS.C, содержащей инициализируемый массив scores, для вывода элементов массива используется функция printf:

#include <stdio.h>

void main(void)

{

int scores[5] = (80, 70, 90, 85, 80);

printf("Значения элементов массива\n");

printf("scores[0] %d\n", scores[0]);

printf("scores[1] %d\n", scores[l]);

printf("scores[2] %d\n", scores[2]);

printf("scores[3] %d\n", scores[3]);

printf("scores[4] %d\n", scores[4]);

}

После компиляции и выполнения этой программы на экран выводится:

C:\> ELEMENTS <Enter>

Значения элементов массива

scores[0] = 80

scores[1] = 70

scores[2] = 90

scores[3] = 85

scores[4J = 80

Как можно видеть, для обращения к элементам массива необходимо указать сначала имя массива, а затем номер требуемого элемента в квадратных скобках.

459. Использование элементов массива в цикле

В С458 были выведены на экран значения элементов массива с номерами от 0 до 4. Обращение к элементам массива с указанием номера каждого элемента массива - способ достаточно громоздкий. В качестве альтернативы можно использовать переменную для указания номеров элементов. Например, предположим, что переменная;' содержит значение 2, тогда следующий оператор присвоит элементу array [2] значение 80:

i = 2;

array [i] =80;

В следующей программе SHOWARRA.C для вывода на экран значений массива scores используется переменная i и цикл for:

#include <stdio.h>

void main(void)

{

int scores[5] = (80, 70, 90, 85, 80);

int i;

printf("Значения элементов массива\n");

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

printf("scores[%d] %d\n", i, scores[i]);

}

460. Использование констант при объявлении массивов

При работе с массивами необходимо указать размер массива. Например, в следующей программе 5_VALUES.C определяется массив из 5 элементов и используется цикл/олдля вывода значений этого массива:

#include <stdio.h>

void main(void)

{

int values[5] = {80, 70, 90, 85, 80);

int i;

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

printf("values[%d] %d\n", i, values[i]);

}

Предположим, мы хотим изменить программу, увеличив размер массива до 10 значений; в этом случае нам придется изменить не только объявление массива, но и границу цикла for. Альтернативой этому является объявление массива с использованием константы. В следующей программе 5_CONST.C объявляется массив, размер которого равен значению ARRAY_SIZE. Как видим, программа использует константу не только для объявления массива, но и в цикле for:

#include <stdio.h>

#define ARRAY_SIZE 5

void main(void)

{

int values[AKKAY_SIZE] = (80, 70, 90, 85, 80};

int i;

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

printf("values[%d] %d\n", i, values[i]);

}

Теперь, если понадобится изменить размер массива, можно просто изменить значение константы ARRA Y_SIZE; в этом случае автоматически изменится как верхняя граница цикла обработки массива, так и размер самого массива.

461. Передача массивов как параметров функций

Массив - это переменная, которая может содержать множество значений одного и того же типа. Как и все другие переменные, массивы могут использоваться как параметры функций. В следующей программе ARRFUNCT.C определяется функция show_array для вывода значений массива. Как видим, программа передает функции массив и количество элементов, содержащихся в массиве:

#include <stdio.h>

void show_array(int values[], int number_of_elements)

{

int i;

for (i = 0; i < number of elements; i++)

printf("%d\n", values[i]);

}

void main(void)

{

int scores[5] = (70, 80, 90, 100, 90};

show_array(scores, 5);

}

При объявлении функции с массивом в качестве формального параметра необязательно указывать размер массива. В случае с функцией show_values квадратные скобки, которые следуют за именем переменной value, информируют компилятор лишь о том, что параметр является массивом; размер массива для компилятора не имеет значения.