В последовательности ?[?] найти положительную подпоследовательность наибольшей длины
Скопипастил на просторах глобального код для нахождения наибольшей подпоследовательности, но при входных данных 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);
}
}