0c222efb
Дата публикации:

C++ помогите с ДЗ. Даны два динамических массива: А[M] и B[N] (M и N вводятся с клавиатуры).

C++ помогите с ДЗ. Даны два динамических массива: А[M] и B[N] (M и N вводятся с клавиатуры).

Вот пример кода, который решает данную задачу:

#include <iostream>

void mergeArrays(int* A, int* B, int M, int N, int*& C, int& sizeC) {
    sizeC = M + N;
    C = new int[sizeC];

    for (int i = 0; i < M; i++) {
        C[i] = A[i];
    }

    for (int i = 0; i < N; i++) {
        C[M + i] = B[i];
    }

    delete[] A;
    delete[] B;
}

int main() {
    int M, N;
    std::cout << "Введите размеры массивов A и B: ";
    std::cin >> M >> N;

    int* A = new int[M];
    int* B = new int[N];

    std::cout << "Введите элементы массива A: ";
    for (int i = 0; i < M; i++) {
        std::cin >> A[i];
    }

    std::cout << "Введите элементы массива B: ";
    for (int i = 0; i < N; i++) {
        std::cin >> B[i];
    }

    int* C;
    int sizeC;

    mergeArrays(A, B, M, N, C, sizeC);

    std::cout << "Массив C: ";
    for (int i = 0; i < sizeC; i++) {
        std::cout << C[i] << " ";
    }
    std::cout << std::endl;

    delete[] C;

    return 0;
}

В данном коде функция mergeArrays принимает два динамических массива A и B, их размеры M и N соответственно, а также ссылку на указатель C и переменную sizeC, которые будут использоваться для хранения третьего массива C и его размера.

Внутри функции mergeArrays создается массив C размером M + N, в который сначала копируются элементы массива A, а затем элементы массива B. После этого освобождаются память, выделенная под массивы A и B.

В функции main сначала вводятся размеры массивов A и B, а затем их элементы. Затем вызывается функция mergeArrays, которая создает массив C и заполняет его элементами из массивов A и B. После этого выводится массив C, а затем освобождается память, выделенная под массив C.