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