Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
5
Добавлен:
12.02.2018
Размер:
2.72 Кб
Скачать
#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");
}
Соседние файлы в папке Лабораторные