#include <iostream>
#include <array>
#include <clocale>
using namespace std;
// Предусловие: вводится матрица Y размером 7x6 целых чисел.
// Постусловие: с использованием std::array сформирован одномерный массив B из 6 элементов,
// содержащий суммы отрицательных элементов каждого столбца матрицы Y; результаты выведены на экран.
void main()
{
setlocale(LC_ALL, "Russian");
const int ROWS = 7; // Число строк матрицы Y
const int COLS = 6; // Число столбцов матрицы Y
// Объявление матрицы Y (7 строк по 6 элементов) и одномерного массива B (6 элементов)
array<array<int, COLS>, ROWS> y;
array<int, COLS> b;
cout << "=== Программа на std::array (Вариант 10) ===" << endl;
cout << "Введите элементы матрицы Y (7 строк по 6 чисел):" << endl;
// Ввод матрицы Y
for (int i = 0; i < y.size(); i++)
{
for (int j = 0; j < y[i].size(); j++)
{
cout << "Y[" << i << "][" << j << "] = ";
cin >> y[i][j];
}
}
// Вывод исходной матрицы Y на экран
cout << "\nМатрица Y (7x6):" << endl;
for (int i = 0; i < y.size(); i++)
{
for (int j = 0; j < y[i].size(); j++)
{
cout << y[i][j] << "\t";
}
cout << endl;
}
// Заполнение массива B суммами отрицательных элементов столбцов
// Внешний цикл идет по столбцам j, внутренний — по строкам i
for (int j = 0; j < COLS; j++)
{
int s = 0; // Накопитель суммы для текущего столбца
for (int i = 0; i < ROWS; i++)
{
if (y[i][j] < 0)
{
s = s + y[i][j];
}
}
b[j] = s;
}
// Вывод одномерного массива B
cout << "\nМассив сумм отрицательных элементов по столбцам (B):" << endl;
for (int j = 0; j < b.size(); j++)
{
cout << "Столбец " << j << ": " << b[j] << endl;
}
system("pause");
}