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

Ответы на вопрос

#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");
}



Вот пример программы на языке C++, которая формирует случайным образом целочисленную матрицу N*N и создает два одномерных массива A и B:
```cpp
#include
using namespace std;
const int N = 5; // размер матрицы
void generateMatrix(int matrix[N][N]) { srand(time(0)); // инициализация генератора случайных чисел for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { matrix[i][j] = rand() % 100; // случайное число от 0 до 99 } } }
void extractDiagonalAndBelow(int matrix[N][N], int arrayA[N*(N+1)/2]) { int index = 0; for (int i = 0; i < N; i++) { for (int j = 0; j <= i; j++) { arrayA[index] = matrix[i][j]; index++; } } }
void extractSecondaryDiagonalAndBelow(int matrix[N][N], int arrayB[N*(N+1)/2]) { int index = 0; for (int i = 0; i < N; i++) { for (int j = N-1; j >= N-i-1; j--) { arrayB[index] = matrix[i][j]; index++; } } }
int main() { int matrix[N][N]; int arrayA[N*(N+1)/2]; // размер массива A: N*(N+1)/2 int arrayB[N*(N+1)/2]; // размер массива B: N*(N+1)/2
generateMatrix(matrix); extractDiagonalAndBelow(matrix, arrayA); extractSecondaryDiagonalAndBelow(matrix, arrayB);
cout << "Матрица:" << endl; for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { cout << matrix[i][j] << " "; } cout << endl; }
cout << "Массив A:" << endl; for (int i = 0; i < N*(N+1)/2; i++) { cout << arrayA[i] << " "; } cout << endl;
cout << "Массив B:" << endl; for (int i = 0; i < N*(N+1)/2; i++) { cout << arrayB[i] << " "; } cout << endl;
return 0; } ```
В этой программе: - Функция `generateMatrix` генерирует случайные числа и заполняет матрицу размером N*N случайными значениями от 0 до 99. - Функция `extractDiagonalAndBelow` извлекает элементы матрицы, расположенные на главной диагонали и ниже нее, и записывает их в массив A. - Функция `extractSecondaryDiagonalAndBelow` извлекает элементы матрицы, расположенные на побочной диагонали и ниже нее, и записывает их в массив B.
Примечание: В примере используется матрица размером 5x5, но вы можете изменить значение константы `N` для создания матрицы другого размера.
Пример вывода:
``` Матрица: 23 56 12 45 78 34 67 90 23 56 45 78 34 67 90 56 12 45 78 34 67 90 23 56 12 Массив A: 23 34 67 45 78 34 56 12 45 78 Массив B: 78 45 12 56 90 67 34 90 56 23 ```Надеюсь, это поможет вам! Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать.


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili