С++ Дан массив 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

daniil9211 daniil9211    3   19.09.2021 19:52    0

Ответы
castlecrashers castlecrashers  19.09.2021 20:00

#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;

}

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика