В последовательности ?[?] найти положительную подпоследовательность наибольшей длины

Скопипастил на просторах глобального код для нахождения наибольшей подпоследовательности, но при входных данных 5, 10, 6, 12, 3, 24, 7, 8 прога выдает 5, 10, хотя должно получиться 5, 6, 12, 24 или 5, 6, 7, 8. Что не так?

#include <iostream>

using namespace std;

int series(float a[], int size)
{  
  int i, n = 1, max = 0, k, x = 0;
    for(i = 2; i < size; i++){
        if(a[i] > a[i - 1]){
           n++;
           if(n == 3)
                x++;
           if(n > max){
                max = n;
                k = i;
           }
        }
        else
            n = 1;
    }
    for(i = k - max + 1; i <= k; i++)
        cout << a[i] << " ";
    return x;
}
int main()
{
    setlocale (LC_ALL, "Rus");
    int n, k, max, num, x;
    cout << "Введите размер последовательности n: ";
        cin >> n;
        if (n>1)
        {
            float a[n];
            for (int i=1; i<n+1; i++)
            {
                cout << "a[" << i << "] = "; 
                cin >> a[i];
            }
            series (a, n);
        }
}

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