Определить первую максимальную длину цепочки из нулей в массиве - C (СИ)
Формулировка задачи:
привет. у меня есть массив состоящий только из из нулей и единиц чисел, как мне определить первую максимальную длину цепочки из нулей? (ее начало, конец и длину). Помогите пожалуйста!!
вот начало программы
#include <stdio.h> #include <stdlib.h> int main(void) { int n=10,i; int a[n], k[n]; srand(444); for (i=0;i<n;i++) a[i]=rand()%2; printf ("\n\n ARRAY A \n\n"); for (i=0;i<n;i++) printf ("%2i",a[i]); return 0; }
Решение задачи: «Определить первую максимальную длину цепочки из нулей в массиве»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> void printArr(int *arr,int N); int main() { int *arr; int N; printf("----------------------------------------------------\nEnter count of elements: "); scanf("%d",&N); /** Выделяем память **/ arr = malloc(sizeof(int)*N); srand(time(NULL)); int i; for(i = 0; i < N; i++) arr[i] = rand()%2; printArr(arr,N); printf("\n\n\n"); /** Подсчет количества нулей **/ int key = 0; int maxlength = 0; int length = 0; for(i = 0; i < N; i++) { /** Если встретили ноль **/ if(!arr[i]) { //Ключ на вкл - идет подсчет key = 1; length++; } else { key = 0; if(length > maxlength) maxlength = length; length = 0; } } if(key) if(length > maxlength) maxlength = length; printf("%d",maxlength); return 0; } /** Вывод массива на печать **/ void printArr(int *arr,int N) { int i; for(i = 0; i < N; i++) printf("Element of array %d is %d\n",i,arr[i]); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д