Если v [i] не больше, чем v [i + k], вы выходите из 'while' и затем печатаете свое значение:
while ((i < ARRAY_SIZE) && (v[i] > v[i+k])) {
i++;
}
printf("print once ");
В качестве альтернативы вы можете использовать логическую переменную, ноне лучшее решение по причине памяти.