Помогите решить проблему с выходом за пределы массива

В одномерном массиве, состоящем из n целых элементов, вычислить: количество пар x[i] и x[i + 1], таких, что x[i] < x[i + 1].

int otvet=0;  
for(i=0;i<n;i++){

    if(A[i]<A[i+1]){
        otvet=otvet+1;
    }
}

При просмотре элементов массива происходит выход за пределы массива. На массивах небольшой размерности могут быть ошибки только в вычислении количества пар, при больших размерностях программа может некорректно заканчивать свою работу. Подскажите, как это пофиксить?


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

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

Элементов в массиве n, но соседних пар только n-1.

Значит, вместо

for(i=0;i<n;i++){

примените

for(i=0;i<n-1;i++){        // вместо n применено n-1

и таким образом вы сравните все соседние пары и A[i+1] не выйдет за границы массива.

(Между прочим, вместо otvet=otvet+1; красивее использовать инкремент: otvet++; или ++otvet;)

→ Ссылка