0

Вывести порядковый номер последнего из элементов массива А, для которого выполняется неравенство введите сюда описание изображения.

Всегда выводит 0, в чем ошибка?

#include <iostream>
using namespace std;
int main()
{
const int i = 20;
double A[i];
int r=0;
cout << "Enter array " << endl;
for (int k = 0; k < i; ++k){
    cout << "[" << k << "] = ";
    cin >> A[k];
}
for (int k = 0; k < i; ++k){
    cout << A[k]<<"  ";
    if ((A[k] > A[1])&&(A[k] < A[i])){
        r = k;
    }
}
cout << endl<< r << endl;
system("pause");
return 0;
}
  • Не очень ясно, если честно, что нужно сделать в задаче. Можете подробнее описать условие, если вы еще не получили ответ? – SmellyNS May 02 '20 at 19:26

1 Answers1

1
if ((A[k] > A[1])&&(A[k] < A[i-1]))
        r = k;

A[20] просто не существует, массив ведь с 0 отсчитывается

  • Вы еще забыли исправить условие A[k] > A[1] на A[k] > A[0] – SmellyNS May 02 '20 at 19:25
  • А разве неверная индексация не приводит к получению мусорного значения или даже к ошибке? – SmellyNS May 02 '20 at 19:27