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

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

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

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

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

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX 100
int main()
{
    int *ptr1, *ptr2, num1 = 0, num2 = 0;
    int arr[MAX];
    srand(time(NULL));
    for (int i = 0; i < MAX; ++i) {
        printf("[%4d]", arr[i] = -70 + rand() % 100);
        if (i >= 8 && !(i % 8)) printf("\n");
    }
    printf("\n\n ");
    for (int i = 0; i < MAX; ++i) 
        if (arr[i] < 0) {
            if (++num1 == 1)
                ptr1 = &arr[i];
        }
        else if (num1) {
            if (num2 < num1) {
                num2 = num1;
                ptr2 = ptr1;
            }
            num1 = 0;
        }
    for (int i = ptr2 - arr; i < (ptr2 - arr) + num2; ++i)
        printf("[%4d]", arr[i]);
    printf("\n%d elements\n", num2);
    return 0;
}

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

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

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


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

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

5   голосов , оценка 4.6 из 5
Похожие ответы