Задан массив из k чисел. Преобразовать массив следующим образом: все отрицательные элементы массива перенести в начало, а все остальные – в конец, сохранив исходное взаимное расположение как среди отрицательных, так и среди положительных элементов.
Ответы
Ответ:
#include <iostream>
#include <iomanip>
#include <cstdlib>
using namespace std;
int main()
{
setlocale(LC_ALL, "rus");
int i, j, k;
int mas[10];
j = 0;
cout << "Введите число элементов массива: " << endl;
cin >> k;
if (k > 10) {
cout << "Ошибка!" << endl;
return 1;
}
else {
cout << "Первоначальный массив: " << endl;
for (i = 0; i < k; i++) {
mas[i] = rand() % 101 - 50;
cout << mas[i] << setw(5);
}
cout << endl;
for (i = 0; i < k; i++) {
if (mas[i] < 0) {
mas[j] = mas[i];
j++;
}
}
for (i = 0; i < k + 1; i++) {
if (mas[i] > 0) {
mas[j] = mas[i];
j++;
}
}
cout << "Измененный массив:" << endl;
for (j = 0; j < k; j++) {
cout << mas[j] << setw(5);
}
}
return 0;
}