Определить первую максимальную длину цепочки из нулей в массиве - 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]);
 
}

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


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

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

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