Как решить задачу на c++?
Ошибка 1. Использование переменной ROWS без инициализации.
while (ROWS < 2) {

Ошибка 2. Обращение к массиву с индексом -1 при j == 0.
if ((arr [i][j - 1] < arr [i][j]) || (arr [i][j - 1] > arr [i][j])){
Ошибка 3. Вместо накопления результата, вы на каждом цикле переписываете значение k. В результате получаете только результат сравнения из последней итерации цикла.

Ошибка 4. Вы в цикле просто сравниваете между собой два соседних числа (ваше условие - просто проверка на неравенство), а вам надо определить, возрастает или убывает вся последовательность чисел.
else if () {
    k = false;
    }
Я не уверен как именно работает If  с пустым условием. Есть у меня подозрение что никак и, соответственно, k не присваивается ничего и она остается с изначальным значением (т.е. неинициализированной и имеет какое угодно значение), а все что не ноль это true. (рекомендую научиться пользоваться отладчиком и самому пошагово посомтреть что на самом деле и почему делает ваша программа)

Почему бы не написать просто 
else 
{
    k = false;
}

И в качестве оффтопа -  пожалуста не пишите операторные скобки в плюсах как в яве, это не ява.