Вопрос задан 17.07.2023 в 12:13. Предмет Информатика. Спрашивает Волощук Руслана.

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

сначала все отрицательные, затем положительные элементы, а нулевые элементы расположить в конце последовательности.​
0 0
Перейти к ответам

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

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

#include <iostream>

using namespace std;

int main() {

int n;

cin>>n;

int arr[n], k=0;

for (int i=0; i<n; ++i) {cin>>arr[i]; if (arr[i]==0) ++k;}

for (int i=0; i<n-1; ++i) {

 for (int j=0; j<n-i-1; ++j) {

  if (arr[j]>arr[j+1]) {

   int temp;

   temp=arr[j];

   arr[j]=arr[j+1];

   arr[j+1]=temp;

     }

 }

}

if (k>0) {

 int m;

 for (m=0; m<n; ++m) if (arr[m]==0) break;

 for (int i=m; i<n-k; ++i) arr[i]=arr[i+k];

 for (int i=n-k; i<n; ++i) arr[i]=0;

}

for (int i=0; i<n; ++i) cout<<arr[i]<<" ";

return 0;

}

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

Ниже приведен пример программы на C++, которая решает данную задачу. Она сортирует последовательность таким образом, чтобы сначала шли все отрицательные элементы, затем положительные и, наконец, нулевые элементы.

cpp
#include <iostream> #include <vector> using namespace std; void rearrangeSequence(vector<int>& sequence) { int n = sequence.size(); int left = 0, right = n - 1; while (left <= right) { if (sequence[left] < 0) { left++; } else if (sequence[left] > 0) { swap(sequence[left], sequence[right]); right--; } else { // элемент равен 0 for (int i = left; i < right; i++) { sequence[i] = sequence[i + 1]; } sequence[right] = 0; right--; } } } int main() { // Ввод последовательности int n; cout << "Введите размер последовательности: "; cin >> n; vector<int> sequence(n); cout << "Введите элементы последовательности:\n"; for (int i = 0; i < n; i++) { cin >> sequence[i]; } // Переупорядочивание последовательности rearrangeSequence(sequence); // Вывод результата cout << "Переупорядоченная последовательность: "; for (int i = 0; i < n; i++) { cout << sequence[i] << " "; } cout << endl; return 0; }

Программа запрашивает у пользователя размер последовательности и её элементы. Затем она использует функцию rearrangeSequence, чтобы переупорядочить последовательность. Результат выводится на экран.

Например, при вводе последовательности: 4 -2 0 3 -1 0 5 программа выведет: -2 -1 0 0 4 3 5.

0 0

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

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

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

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