Рекомендую для начала привести код на C в нормальный вид, с правильными отступами и нормальным стилем. У вас ошибка в восприятии блока
if(r>=3){
for(i=lk-2; i<=lk; i++)
a[i]=max; r=0;
i=i-1;}
который должен читаться как
if (r >= 3) {
for (i = lk - 2; i <= lk; i++) {
a[i]=max;
}
r = 0;
i=i-1;
}
Потом стоит исправить ошибку в поиске максимума, когда переменной max присваивается значение неинициализированного элемента a[0].
Выбросить дубль цикла поиска максимума в массиве.
Ну и переписать цикл for на while, раз в паскале нельзя изменять значение переменной цикла.