В массиве Х найти наиболее короткую серию элементов, чередующихся по знаку вывести индекс первого ее элемента - C (СИ)
Формулировка задачи:
Ребят помогите плиз с лабой на Си!
Никак не могу вдуплиться)
Задание: В массиве Х найти наиболее короткую серию элементов, чередующихся по знаку. Вывести индекс первого ее элемента.
Решение задачи: «В массиве Х найти наиболее короткую серию элементов, чередующихся по знаку вывести индекс первого ее элемента»
textual
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #define N 18
- int main()
- {
- int A[N], i, count = 0, min = N, first = 0, firstMin = 0;
- srand(time(NULL));
- for(i = 0; i < N; i++){
- A[i] = rand() % 18 - 9;
- printf("%d ", A[i]);
- if(i){
- if((A[i] >= 0 && A[i - 1] < 0) || (A[i] < 0 && A[i - 1] >= 0)){
- if(!count)
- first = i - 1;
- count++;
- }
- else{
- if(count && count < min){
- min = count;
- firstMin = first;
- }
- count = 0;
- }
- }
- }
- putchar('\n');
- printf("The shortest series of elements with alternating sign is from A[%d] to A[%d] "
- "total %d elements\n", firstMin, firstMin + min, min + 1);
- return 0;
- }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с языком C
- Определяем размер массива N
- Инициализируем переменные: A[N] - массив, i - счётчик, count - количество элементов в серии, min - длина самой короткой серии, first - индекс первого элемента серии, firstMin - индекс первого элемента самой короткой серии
- Инициализируем генератор случайных чисел с помощью функции srand(time(NULL))
- Заполняем массив случайными числами с помощью цикла for и функции rand() % 18 - 9
- Выводим значения массива на экран с помощью функции printf()
- Проверяем условия для определения серии элементов с чередующимся знаком:
- Если текущий элемент положительный, а предыдущий отрицательный или наоборот, то проверяем длину текущей серии.
- Если текущая серия короче самой короткой, то обновляем значения первой серии.
- Если текущая серия равна самой короткой, то обновляем значения первой серии.
- После заполнения массива выводим на экран длину самой короткой серии и ее индексы с помощью функции printf()
- Возвращаем 0, чтобы указать, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д