С++ Дан массив a из n целых чисел. Требуется поменять местами первый отрицательный и последний положительный элементы массива. Если какого-то из этих элементов в массиве нет, то не изменять массив. Ноль считать положительным числом.
Формат входных данных
На первой строке записано натуральное число n (n<100) — размер массива. На следующей строке через пробел записаны n целых чисел ai (|ai|≤1000) — элементы массива.
Формат выходных данных
Требуется вывести n чисел — изменённый массив.
входные данные
9
1 2 3 4 -9 10 12 14 15
выходные данные
1 2 3 4 15 10 12 14 -9
#include <bits/stdc++.h>
using namespace std;
int main(){
int n, negativeIndex = 0, positiveIndex = 0, buf = 0;
bool a, b = false;
cin >> n;
int arr[n];
for(int i = 0; i < n; ++i){
cin >> arr[i];
}
for(int i = 0; i < n; ++i){
if(arr[i] < 0){
negativeIndex = i;
a = true;
break;
}
}
for(int i = n-1; i >= 0; --i){
if(arr[i] >= 0)
positiveIndex = i;
b = true;
break;
}
if(a && b){
buf = arr[negativeIndex];
arr[negativeIndex] = arr[positiveIndex];
arr[positiveIndex] = buf;
}
for(int i = 0; i < n; ++i){
cout << arr[i] << "\t";
}
return 0;
}