Написать программу на языке С++:
Сформировать случайным образом целочисленную матрицу N*N. Сформировать два одномерных массива А и В: в массив А записать элементы матрицы, расположенные на главной диагонали и ниже неё, в массив В - элементы, лежащие на побочной диагонали и ниже неё

Ответы

Ответ дал: Milton812
0
#include <iostream>
#include <iomanip>
#include <ctime>

int main()
{
    setlocale(LC_ALL, "RUSSIAN");
    const int N = 5;
    int matrix[N][N];
    int A[(N*N) / 2], B[(N*N)/2];
    int k = 0;
    srand(time(NULL));
    for (int i = 0; i < N; i++)
    {
        std::cout << std::endl;
        for (int j = 0; j < N; j++)
        {
            matrix[i][j] = rand() % 100;
            std::cout << std::setw(3) <<  matrix[i][j] << " ";
        }
    }
    for (int i = 0; i < N; i++)
        for (int j = 0; j < N; j++)
            if (i >= j)
            {
                A[k] = matrix[i][j];
                k++;
            }
    std::cout << std::endl;
    std::cout << "Массив, содержащий элементы, лежащие на главной диагонали и ниже ее:" << std::endl;
    for (int i = 0; i < k; i++)
        std::cout << A[i] << " ";
    k = 0;
    std::cout << std::endl;
    for(int i=0; i<N; i++)
        for (int j = N - i-1; j < N; j++)
        {
            B[k] = matrix[i][j];
            k++;
        }
    std::cout << "Массив, содержащий элементы, лежащие на побочной диагонали и ниже ее:" << std::endl;
    for (int i = 0; i < k; i++)
        std::cout << B[i] << " ";
    std::cout << std::endl;
    system("pause");
}
Вас заинтересует