Решение задач на С++

Всем привет, я являюсь абсолютным новичком в С++. И мне задали решить три задачи, прошу, пожалуйста, помогите разобраться в них))

  1. Необходимо задать массив, без генерации, просто в коде. И если он отсортирован по возрастанию, вывести 1, если по убыванию вывести 2, если все элементы массива одинаковые, то 0, и если массив не упорядочен то -1.

Пример:

1 - Если массив отсортирован по возрастанию.
2 - Если массив отсортирован по убыванию.
0 - Если все элементы массива одинаковые.
-1 - Если массив не упорядочен.

-4 5 10 10 13 56 100 => 1 
10 8 8 5 5 2 -10  => 2 
8 8 8 8 8 8 8 => 0 
3 6 8 8 5 10 34 1 => -1
10 23 45 20 100 120 => -1
  1. Нужно среди всех ЧЕТНЫХ чисел массива нужно найти самый максимальный элемент
    и количество его повторений в данном массиве.
    Пример:
    17 25 8 10 11 10 2 -4 57 => max = 10 , repeats 2 times
    7 9 11 -10 3 -4 17 -4 95 -4 1 => max = -4, repeats 3 times

  2. Самое сложное на мой взгляд, Дан массив.
    Элементы массива принадлежат интервалу [0, 20]
    Нужно найти самую длинную непрерывную последовательность элементов с шагом 1.
    Функция должна вернуть именно ДЛИНУ.
    2 4 7 8 10 11 1 3 => 4. [1 2 3 4]
    0 10 1 11 2 12 3 16 13 17 8 9 => 6. [ 8 9 10 11 12 13]

P.s. задачи не относятся к одному массиву, это просто три разных задачи)

Чем помочь, что пытались делать?

Привет, пытался 1, но там пока все плохо.
Во втором получилось пока так:

#include <iostream>
#include <iomanip>
 
using namespace std;
 
int main()
{
    const int n = 10;
    int x[n] = {17, 25, 8, 10, 11, 10, 2, -4, 57, 76};
    int max1 = x[0];
    for (int i = 1; i < n; i++)
    {
        if (x[i] % 2 == 0 && x[i] > max1)
        {
            max1 = x[i];
        }
    }
    cout << "max1 = " << max1 << '\n';
    return 0;
}

Но выводит он неправильно почему-то, вместо 10, выводит 17 и количество, сколько раз повторяется, пока не знаю как сделать

В 3 вообще все плохо, я с таким 1 раз сталкиваюсь, даже идей нет, куда капать

Когда ничего непонятно, может помочь отладчик или отладочный вывод (выводить всё подряд на каждой итерации, i, x[i], max1, результат условий, …)

Например, еще раз пройти массив и считать сколько таких.

А чем вы инициализируете max1 до цикла?

По первой задаче: решите сначала каждую подзадачу отдельно - про один и тот же массив выведите сообщение, отсортирован ли массив по возрастанию или нет, отсортирован ли по убыванию или нет, все ли элементы одинаковы или нет. А потом уже можно подумать и объединить решения, чтобы выводить только одно сообщение.

По третьей задаче: можно завести дополнительный массив размера 21, пройтись по исходному массиву и выставить единички в новом массиве в тех элементах, чей индекс совпадает со значением в исходном массиве. А потом уже анализировать этот новый массив, состоящий из 0 и 1, чтобы посчитать, сколько именно единичек подряд в нем есть.