В массиве Х найти наиболее короткую серию элементов, чередующихся по знаку вывести индекс первого ее элемента - 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, чтобы указать, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д