- •Лабораторная работа № 5 Одномерные массивы
- •Определение переменных программы:
- •Варианты заданий
- •Определение переменных программы
- •Разработка текста программы
- •1. Объявляем константу с помощью директивы препроцессора #define. Включаем заголовочные файлы с описанием библиотечных функций, используемых в программе.
- •Варианты заданий
Лабораторная работа № 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;
}