странная какая-то формула a[i] > 0 && a[i] < a[i + 1] && a[i + 1] > 0,
для цифры 3 все условия выполняются, но ведь для цифры 4 - нет. Тк. след. после нёё цифра -5 а для неё не выполняется условие
а[i + 1] > 0 - те. условие не подходит для ожидаемого результата.
Вот другой вариант. Положительное знаение вставляется всегда во второй массив, но counter для следующего значения увиличивается только тогда, когда условия "слева меньше чем справа" выполняются. Иначе count остаётся на месте и при след. положительном числе элемент массива переписывается новым значением.
ну где-то так:
int s = 0;
for (int i = 0; i < n; i++)
{
if (a[i] > 0)
{
b[s] = a[i];
if ( (s==0) || (s > 0 && b[s-1] < b[s]) )
{
s++;
}
}
}
не надо забывать, что последний элемент в массиве b - не есть часть правильного ответа. Элементы b индексом меньше