Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа 5.doc
Скачиваний:
8
Добавлен:
09.11.2018
Размер:
104.45 Кб
Скачать

Лабораторная работа № 5 Одномерные массивы

Цель работы – овладеть практическими навыками работы с массивами, особенностями их ввода и вывода, приобрести дальнейшие навыки по организации программ циклической структуры.

Пример 1. Дан одномерный массив размерностью N. Подсчитать количество отрицателных элементов в массиве, найти k–й отрицательный элемент массива.

Алгоритм решения:

На первом этапе создаем массив и заполняем его данными, для этого используем цикл for и функцию scanf. Затем в новом цикле просматриваем все элементы массива, подсчитываем количество отрицательных элементов и запоминаем номер k-того отрицательного элемента.

Определение переменных программы:

Для реализации алгоритма нам будут необходимы следующие константы и переменные:

Константа N, которая определяет размер массива.

Массив целых чисел, который будет обрабатываться: int Arr[N]. Массив должен располагаться в статической памяти.

Индекс элементов массива для циклов: int i.

Параметр int kneg для номера k-того отрицательного элемента массива.

Параметр int kn для подсчета числа отрицательных элементов массива.

Параметр int ki для индекса найденного элемента массива.

Разработка текста программы

1. Объявляем константу с помощью директивы препроцессора #define. Включаем заголовочные файлы с описанием библиотечных функций, используемых в программе.

2. Объявляем переменные и присваиваем им необходимые начальные значения. Переменной ki присваиваем значение -1, если будет найдет нужный элемент массива, то это значение изменится.

3. В теле цикла вводим значения элементов массива.

4. Вводим номер для поиска отрицательного элемента

5. В теле цикла просматриваем все элементы массива, сравниваем с 0 и подсчитываем отрицательные элементы в переменной kn. Здесь же сравниваем номер отрицательного элемента с заданным (kneg). Если номер совпал, в переменной ki запоминаем индекс этого эелемента массива.

6. После выхода из цикла выводим на печать число отрицательных элементов и индекс заданного отрицательного элемента массива (ki). Если ki осталось равным -1, выводим надпись о том, что такого элемента нет.

Полный текст программы приведен ниже.

#define N 10 // размер массива

int main(int argc, char* argv[])

{

int i, Arr[N] ;

int kn = 0;

int ki = -1, kneg;

printf(“Введите элементы массива: \n”);

for ( i = 0; i < N; i++ ) // Ввод одномерного массива с клавиатуры

{

printf("Arr[%d]= ", i); // Подсказка для пользователя.

scanf( "%d", &Arr[i] ); // Ввод элемента массива с клавиатуры

}

printf (“Введите номер для поиска отрицательного элемента >“);

scanf(“%d”, &kneg);

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

{

if (Arr[i] < 0 ) kn++; // Цикл подсчета числа отриц. элементов в массиве

if (kn == kneg) // Если заданный отрицательный элемент массива

ki = i; // Запоминаем его индекс в массиве

}

if ( kn != 0 )

printf(“Число отрицательных элементов в массиве = %d\n“, kn);

else

printf (“Отрицательных элементов в массиве нет! “);

if (ki >= 0 )

printf( “Элемент Arr[%d] = %d является %d - ым отрицательным

элементом массива \n“, ki, Arr[ki], kneg);

else

printf(“Отрицательных элементов с порядковым номером %d нет“, kneg);

getch();

return 0;

}