Одномерный массив положительные, отрицательные числа

srt
проблема в том, что меняются все пары противоположных чисел, а нужно чтобы менялась первая пара чисел.Пмогите в чем может быть недочет в этом алгоритме?(только без break)

 #include  <iostream>
 #include  <cmath>
using namespace std;

int main()
{
setlocale(LC_ALL, "Russian");
int n;
cout<<"Введите количество элементов в массиве: ";
cin >> n;
int A[50];
for (int i = 0; i < n; i++) {
cout << "\na[" << i  <<"]=";
cin >> A[i];
}
cout << "Массив A:";
for (int i = 0; i < n; i++) {
cout << " " << A[i];
}
cout << endl;
int k=0;
int t=0;
while (k==0) {
for (int i=0; i<n; i++) {
if(A[i] == abs(A[i+1])||(abs(A[i]) == A[i+1])) {
t = A[i];
A[i] = A[i+1];
A[i+1] = t;
k++;
}
}
}

cout <<"Измененный массив A:";
for (int i = 0; i < n; i++) {
cout << " " << A[i];
}

}

Ну и жесть, глаза сломать можно.
И Ваш код не соберется. Почитайте о вводе-выводе в С++.

так он норм работает нормально проблема в том, что меняются все пары противоположных чисел, а нужно чтобы менялась первая пара чисел

:arrow_up:
и при вставке кода на форумы нажимать кнопку Код.

Так выходите из цикла после первой.
C++ | Циклы