Добавил:
AiSora
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторные / Лаб4
.cpp#include <iostream>
#include <cmath>
using namespace std;
void main()
{
setlocale(LC_ALL, "Russian");
int a[5], b[5], temp, i, j, p[10] = { 0 }, n[10] = { 0 };
cout << "Заполните первый массив:" << endl << endl; //Заполнение первого массива
for (i = 0; i < 5; i++)
cin >> a[i];
cout << endl << endl << "Заполните второй массив:" << endl << endl; //Заполнение второго массива
for (i = 0; i < 5; i++)
cin >> b[i];
for (i = 4; i > 0; i--)
{
for (int j = 0; j < i; j++)
{
if (a[j] > a[j + 1]) //Сортировка первого массива по возрастанию
{
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
if (b[j] < b[j + 1]) //Сортировка второго массива по убыванию
{
temp = b[j];
b[j] = b[j + 1];
b[j + 1] = temp;
}
}
}
cout << endl << endl << "Первый массив после сортировки" << endl << endl; //Вывод отсортированного 1-го массива
for (i = 0; i < 5; i++)
{
cout << a[i] << " ";
if (a[i] > 0)
p[i] = a[i];
if (a[i] < 0)
n[5 + i] = a[i];
}
cout << endl << endl << "Второй массив после сортировки" << endl << endl; //Вывод отсортированного 2-го массива
for (i = 0; i < 5; i++)
{
if (b[i] > 0)
p[5 + i] = b[i];
if (b[i] < 0)
n[i] = b[i];
cout << b[i] << " ";
}
for (i = 0; i < 5; i++)
if (a[i] <= 0 && b[i] >= 0) //Обмен неположительными и неотрицательными значениями между массивами
{
temp = a[i];
a[i] = b[i];
b[i] = temp;
if (a[i] == p[5 + i] && p[5 + i] != p[5]) //Исключение использованных чисел
p[i + 5] = 0;
if (b[i] == n[5 + i] && n[5 + i] != n[5])
n[i + 5] = 0;
}
for (i = 0; i < 5; i++) //Постановка недостающих чисел
{
for (j = 0; j < 5; j++)
{
if (a[i] < 0 && p[5 + j] != 0)
{
a[i] = p[5 + j];
p[5 + j] = 0;
}
if (b[i] > 0 && n[5 + j] != 0)
{
b[i] = n[5 + j];
n[5 + j] = 0;
}
}
}
for (i = 0; i < 5; i++) //Обнуление неподходящих элементов
{
if (a[i] < 0)
a[i] = 0;
if (b[i] > 0)
b[i] = 0;
}
for (i = 4; i > 0; i--) //Перемещение всех нулей в правый часть
{
for (j = 0; j < i; j++)
{
if (a[j + 1] != 0 && a[j] == 0)
{
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
if (b[j + 1] != 0 && b[j] == 0)
{
temp = b[j];
b[j] = b[j + 1];
b[j + 1] = temp;
}
}
}
cout << endl << endl << "Неотрицательные значения" << endl << endl; //Вывод измененного 1-го массива
for (i = 0; i < 5; i++)
cout << a[i] << " ";
cout << endl << endl << "Неположительные значения" << endl << endl; //Вывод измененного 2-го массива
for (i = 0; i < 5; i++)
cout << b[i] << " ";
cout << endl;
system("pause");
}
Соседние файлы в папке Лабораторные