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
.