Вопрос задан 06.05.2019 в 15:23. Предмет Информатика. Спрашивает Глуховцова Сашка.

Написать программу на языке С++: Сформировать случайным образом целочисленную матрицу N*N.

Сформировать два одномерных массива А и В: в массив А записать элементы матрицы, расположенные на главной диагонали и ниже неё, в массив В - элементы, лежащие на побочной диагонали и ниже неё
0 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");
}
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Вот пример программы на языке C++, которая формирует случайным образом целочисленную матрицу N*N и создает два одномерных массива A и B:

```cpp #include #include #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 ```

Надеюсь, это поможет вам! Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос