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