Разделить массив на два новых, чтобы в первом были значения, большие нуля, а в другом — меньшие - C (СИ)
Формулировка задачи:
Есть двухмерный масив целых чисел, который содержит отрицательные и положительные значение. Розделить его на два новых таким образом, чтобы в первом оказались значения, большие нуля, а в другом - меньше.
Решение задачи: «Разделить массив на два новых, чтобы в первом были значения, большие нуля, а в другом — меньшие»
textual
Листинг программы
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL,"rus");
const int n = 3;
int a[n][n];
int b[n*n], c[n*n];
int first = 0, second = 0;
for(int i = 0; i < n; i++)
{
for(int j = 0; j < n; j++)
{
cout << "a[" << i << "]["<< j << "] = ";
cin >> a[i][j];
if(a[i][j] > 0)
{
b[first] = a[i][j];
first++;
}
if(a[i][j] < 0)
{
c[second] = a[i][j];
second++;
}
}
}
cout << "Массив из положительных: " << endl;
for(int i = 0; i < first; i++)
cout << b[i] << " ";
cout << "\nМассив из отрицательных: " << endl;
for(int i = 0; i < second; i++)
cout << c[i] << " ";
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с потоками ввода-вывода
- Установка русской локали для вывода информации
- Объявление константы размера массива n
- Создание двумерного массива a размером n на n и инициализация его значениями
- Создание одномерных массивов b и c размером n*n для хранения значений, которые больше или меньше нуля соответственно
- Инициализация переменных first и second со значением 0 для отслеживания количества элементов в массивах b и c
- Обход массива a с помощью двух вложенных циклов, где внешний цикл выполняется по строкам, а внутренний по столбцам
- Ввод значений массива a с помощью функции cin и сохранение их в соответствующую ячейку массива a
- Проверка значения элемента массива a с помощью условного оператора if. Если значение больше нуля, то сохраняем его в массив b с помощью функции cout и увеличиваем значение переменной first на 1.
- Если значение элемента массива a меньше нуля, то сохраняем его в массив c с помощью функции cout и увеличиваем значение переменной second на 1.
- Вывод информации о массиве a с помощью функции cout
- Вывод значений массива b с помощью функции cout и пробелов в качестве разделителей
- Вывод значений массива c с помощью функции cout и пробелов в качестве разделителей
- Ожидание ввода пользователем значения для продолжения работы программы