Подсчитать максимальное количество подряд идущих отрицательных элементов - C (СИ) (71969)

Узнай цену своей работы

Формулировка задачи:

Помогите, пожалуйста, написать программу на языке Си: Дан одномерный массив А, состоящий из N элементов. Подсчитать максимальное количество подряд идущих отрицательных элементов. Заранее большое спасибо!)

Решение задачи: «Подсчитать максимальное количество подряд идущих отрицательных элементов»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #define MAX 100
  5. int main()
  6. {
  7.     int *ptr1, *ptr2, num1 = 0, num2 = 0;
  8.     int arr[MAX];
  9.     srand(time(NULL));
  10.     for (int i = 0; i < MAX; ++i) {
  11.         printf("[%4d]", arr[i] = -70 + rand() % 100);
  12.         if (i >= 8 && !(i % 8)) printf("\n");
  13.     }
  14.     printf("\n\n ");
  15.     for (int i = 0; i < MAX; ++i)
  16.         if (arr[i] < 0) {
  17.             if (++num1 == 1)
  18.                 ptr1 = &arr[i];
  19.         }
  20.         else if (num1) {
  21.             if (num2 < num1) {
  22.                 num2 = num1;
  23.                 ptr2 = ptr1;
  24.             }
  25.             num1 = 0;
  26.         }
  27.     for (int i = ptr2 - arr; i < (ptr2 - arr) + num2; ++i)
  28.         printf("[%4d]", arr[i]);
  29.     printf("\n%d elements\n", num2);
  30.     return 0;
  31. }

Объяснение кода листинга программы

В этом коде используется массив MAX, размером 100, который заполняется случайными числами от -70 до 30 с шагом 8. Затем код подсчитывает количество отрицательных чисел, и если это число больше 1, то он сохраняет указатель на первый элемент и количество элементов в переменной num2. Затем он выводит все элементы, начиная с num2 и заканчивая последним элементом в массиве. И в конце выводит количество элементов.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.6 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы