Разработать программу поиска номеров всех элементов масива, больших чем предыдущие

    #define _USE_MATH_DEFINES
    #include <iostream>
    #include <math.h>
    using namespace std;
    
    int main() {
       
    int number = 0;
    int size = 0;
    int count = 0;
    
     cout << "Rozmer masiva А: ";
     cin >> size;
     int* arr = new int[size];
     cout << "Vvedite chisla masiva A: ";
    for (int i = 0; i < size; i++) {
                cout << "[" << i + 1 << "]" << ": ";
                cin >> arr[i];
                arr[i] = number;
            }
    cout << endl;       
    
for(int i = 0; i < size; i++) {
        int b;
           if(b > number) {
              cout << b << " ";
           }
           number = b;
        }
    
    
        return 0;
    }

Не могу разобраться с цыклом for для вывода элементов больших чем предыдущие. Затея была в том чтобы присвоим переменной b значение number, чтобы иметь возможность сравнивать и далее. Но ничего не вышло


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

Автор решения: AR Hovsepyan

Числа могут быть и отрицательными, поэтому нужно сначала иметь для сравнения самое маленькое число, что вместится в int.

   int number = std::numeric_limits<int>::min();
   for (int i = 0; i < size; i++) {       
        if (number < arr[i]) {
            cout << i << ' ';
            number = arr[i];
        }
    }

Строка int count = 0; лишняя, можете удалить. А присвоение и arr[i] = number; в первом цикле и int number = 0; удалите обязательно.

→ Ссылка
Автор решения: MBo

Для случая, когда нужно сравнивать только с одним предыдущим - логика очень простая. Обратите внимание на старт цикла со второго элемента.

for(int i = 1; i < size; i++) {
    if (arr[i] > arr[i-1])
            cout << arr[i] << " ";
}

Кстати, в заголовке сказано "поиска номеров всех..." - если нужно именно так, выводите i, а не arr[i]

→ Ссылка