Определить количество чисел в наиболее длинной последовательности из подряд идущих нулей - C (СИ)
Формулировка задачи:
Написать программу с/с++. Дана последовательность из 100 целых чисел. Определить количество чисел в наиболее длинной последовательности из подряд идущих нулей.
Решение задачи: «Определить количество чисел в наиболее длинной последовательности из подряд идущих нулей»
textual
Листинг программы
#include <stdio.h>
int main(int argc, char *argv[])
{
const int numbers[] = {1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0};
const int size = sizeof(numbers) / sizeof(int);
int i = 0, max = 0, cnt = 0;
for( ; i < size; ++i, cnt = 0)
{
if(numbers[i])
continue;
while(++i < size && !numbers[i])
++cnt;
if(max < ++cnt)
max = cnt;
}
printf("\n%d\n", max);
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Объявлен массив
numbersс 26 элементами, включающими в себя 13 четных и 13 нечетных чисел. - Инициализированы переменные
size,i,maxиcnt. - В цикле
forперебираются элементы массиваnumbers. - Если текущий элемент больше 0, то в тело цикла не заходим и переходим к следующему элементу.
- Когда встречается ноль, начинается счетчик
cnt, который увеличивает счетчик на единицу при каждом следующем нуле. - Если
cntбольше максимального значенияmax, то обновляемmax. - После прохода по всем элементам массива выводим значение
max. - Программа завершается с результатом работы.