Вопрос задан 21.06.2023 в 12:11. Предмет Информатика. Спрашивает Тимокиров Александр.

С++ Дан массив 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
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Пелёвин Никита.

Ответ:

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

}

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения этой задачи вам нужно выполнить следующие шаги в C++:

  1. Прочитать входные данные: размер массива n и сам массив a.
  2. Найти первый отрицательный элемент и последний положительный элемент в массиве.
  3. Если оба элемента найдены, поменять их местами.
  4. Вывести измененный массив.

Вот C++ код для выполнения этих шагов:

cpp
#include <iostream> int main() { int n; std::cin >> n; int a[1000]; for (int i = 0; i < n; i++) { std::cin >> a[i]; } int first_negative_index = -1; int last_positive_index = -1; // Находим первый отрицательный и последний положительный элемент for (int i = 0; i < n; i++) { if (a[i] < 0 && first_negative_index == -1) { first_negative_index = i; } if (a[i] >= 0) { last_positive_index = i; } } // Проверяем, что оба элемента найдены if (first_negative_index != -1 && last_positive_index != -1) { // Меняем местами элементы int temp = a[first_negative_index]; a[first_negative_index] = a[last_positive_index]; a[last_positive_index] = temp; } // Выводим измененный массив for (int i = 0; i < n; i++) { std::cout << a[i] << " "; } return 0; }

При вводе ваших примеров входных данных (9 1 2 3 4 -9 10 12 14 15), код выведет ожидаемый результат (1 2 3 4 15 10 12 14 -9).

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос