Определить количество чисел в самой длинной последовательности чисел, расположенных по убыванию

Всем привет, скажу все коротко и ясно. Есть задача: Определить количество чисел в самой длинной последовательности чисел, расположенных по убыванию. Написал программу но считает не правильно, ответ должен быть 5, выводит 6 и так далее, но если написать сила от 25 до 1, ответ правильный. Как это понимать? Объясните, пожалуйста, код ниже:

#include <iostream>

using namespace std;

int MyFunc(int MyArr[25]);

int main() {
    int arr[25];

    cout << "Eneter elements:\n";
    for (int i = 0; i != 25; i++) {
        cin >> arr[i];
    }


    cout << "Max len: " << MyFunc(arr);
}

int MyFunc(int MyArr[25]) {
    int count = 0, max = 0;
    for (int i = 0; i != 25; i++) {
        if (MyArr[i + 1] < MyArr[i]) {
            count++;
            if (count > max) {
                max = count;
            }
        }
        else{
            count = 0;
        }
    }
    return max;
}



Ответы (1 шт):

Автор решения: Harry

Во-первых, вы выходите за рамки массива, во-вторых, даже наличии 2 чисел в последовательности вы считаете их как 1 (инициализируя count нулем).

int MyFunc(int MyArr[25])
{
    int count = 1, max = 0;
    for (int i = 0; i < 24; i++)
    {
        if (MyArr[i+1] < MyArr[i]) {
            count++;
            if (count > max) {
                max = count;
            }
        }
        else{
            count = 1;
        }
    }
    return max;
}
→ Ссылка