Ошибка возникает из-за **неправильного синтаксиса инициализации массива** в C++. В вашем коде вы используете фигурные скобки `{}` без оператора `=`, что вызывает путаницу у компилятора.
**Правильный синтаксис:**
```cpp
int numbers[5] = {a, b, c, d, e};
```
### Исправленный код:
```cpp
#include <iostream>
using namespace std;
int main() {
char r;
do {
const int n = 5;
int i;
r = 'y';
int a, b, c, d, e;
cout << "Введите 5 чисел:" << endl;
cin >> a;
cin >> b;
cin >> c;
cin >> d;
cin >> e;
// Исправленная инициализация массива
int numbers[5] = {a, b, c, d, e};
for (i = 0; i < n; i++) {
cout << numbers
<< endl;
}
cout << "Повторить? (y/n)" << endl;
cin >> r;
} while (r == 'y'
;
return 0;
}
```
### Почему это работает?
1. **Инициализация массива через `=`** — в C++ массивы инициализируются с помощью оператора `=` и фигурных скобок.
2. **Константа `n`** — поскольку `n` имеет тип `const int`, компилятор позволяет использовать её для определения размера массива (в C++14 и выше).
3. **Цикл вывода** — элементы массива выводятся через индексацию `numbers`.
Этот код теперь корректно считывает 5 чисел и выводит их в консоль.