Найти непрерывную цепочку положительных элементов в масиве - C (СИ)
Формулировка задачи:
Помогите написать код.
Дан массив X из N целых чисел.
Нужно найти самую длинную непрерывную цепочку положительных элементов больше нуля в масиве X
И вывести ее на экран.
Решение задачи: «Найти непрерывную цепочку положительных элементов в масиве»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> int main() { int* array; int size, i; int counter = 0; int max = 0; int position = 0; scanf("%d", &size); if ( size > 0 ) { array = (int*) malloc (size*sizeof(int)); for ( i = 0; i < size; i++ ) { scanf("%d", &array[i]); if ( array[i] > 0 ) { counter += 1; if ( max < counter ) { max = counter; position = i+1; } } else { counter = 0; } } for ( i = position-max; i < position; i++ ) { printf("%d ", array[i]); } } else { printf("Wrong size!\n"); } return 0; }
Объяснение кода листинга программы
- Объявлены переменные:
- int* array;
- int size;
- int i;
- int counter = 0;
- int max = 0;
- int position = 0;
- Считывается значение размера массива с помощью функции scanf().
- Выполняется проверка на корректность размера массива (больше 0).
- Выделяется память под массив с помощью функции malloc().
- В цикле с помощью функции scanf() считываются значения элементов массива.
- Проверяется условие, если элемент больше 0, то увеличивается счетчик counter.
- Если значение счетчика больше максимального значения, то обновляются значения max и position.
- Если элемент меньше или равен 0, то сбрасывается значение счетчика counter.
- В цикле выводятся элементы массива, начиная с позиции position-max и до position.
- Если размер массива некорректен, то выводится сообщение об ошибке.
- Возвращается 0, что означает успешное завершение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д