Всем привет, я являюсь абсолютным новичком в С++. И мне задали решить три задачи, прошу, пожалуйста, помогите разобраться в них))
Необходимо задать массив, без генерации, просто в коде. И если он отсортирован по возрастанию, вывести 1, если по убыванию вывести 2, если все элементы массива одинаковые, то 0, и если массив не упорядочен то -1.
Пример:
1 - Если массив отсортирован по возрастанию.
2 - Если массив отсортирован по убыванию.
0 - Если все элементы массива одинаковые.
-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
Самое сложное на мой взгляд, Дан массив.
Элементы массива принадлежат интервалу [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. задачи не относятся к одному массиву, это просто три разных задачи)
По первой задаче: решите сначала каждую подзадачу отдельно - про один и тот же массив выведите сообщение, отсортирован ли массив по возрастанию или нет, отсортирован ли по убыванию или нет, все ли элементы одинаковы или нет. А потом уже можно подумать и объединить решения, чтобы выводить только одно сообщение.
По третьей задаче: можно завести дополнительный массив размера 21, пройтись по исходному массиву и выставить единички в новом массиве в тех элементах, чей индекс совпадает со значением в исходном массиве. А потом уже анализировать этот новый массив, состоящий из 0 и 1, чтобы посчитать, сколько именно единичек подряд в нем есть.