Все, что вам нужно сделать, это переместить вторую if
. Вы не хотите перекрывать самый длинный разрыв каждый раз, только если вы знаете, что он определенно находится между двумя единицами.
if (Z == '0')
{
gap++;
}
else // if (Z == '1')
{
if (gap > longestgap)
{
longestgap = gap;
}
gap = 0;
}
Таким образом, даже если разрыв продолжает отсчитываться до конца вашего двоичного файла, если вы не найдете секунду '1'
, самый длинный разрыв будет по-прежнему равен 0.