Я бы сделал примерно так.
Пишем функцию, которая по 3 значениям определяет есть зуб, или нет.
Т. е. функция зуб(X1, X2, X3)
Если ((X1<X2)и(X2>X3))или((X1>X2)и(X2<X3)) то это зуб иначе не зуб.
В основной программе пишем цикл от первого значения до последнего - 2 элемента. В нем проверяем, если сейчас зуб, то увеличиваем счетчик на 1, если не зуб или конец последовательности, то сравниваем значение счетчика с предыдущим максимальным значением, если новое больше, то сохраняем новое значение. Небольшой пример ниже.
Код
int mv = 0; //Максимальное значение
int cv = 0; //Текущее значение
for (int i=0; i<100; i++)
{
if (istooth(a[i], a[i+1], a[i+2])
{
cv++;
}
else
{
if (cv>mv)
mv = cv;
cv = 0;
}
}
if (cv>mv)
mv = cv;
В mv будем максимальная длина.