Даны целочисленные массивы А(M), В(N), причём А[0] ≤ А[1] ≤ ... ≤ А[M-1] и В[0] ≤ В[1] ≤ ... ≤ В[N-1]. Сформируйте массив С(M+N), содержащий все элементы массивов А и В, в котором С[0] ≤ С[1] ≤ ... ≤ С[M+N-1].
Формат входных данных. [M] [1-й элемент массива A] [2-й элемент массива A] и т.д. [1-й элемент массива B] [2-й элемент массива B] и т.д. Элементы массивов – целые числа в диапазоне ± 1000. M и N - целые числа в диапазоне [2, 20].
Формат выходных данных. [1-й элемент массива С] [пробел] [2-й элемент массива С] и т.д.
Рекомендуемое кол-во циклических операторов (без ввода и вывода данных): 1
вот мой код.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int M, N;
// Чтение размера массива A
scanf("%d", &M);
// Чтение массива A
int A[20];
for (int i = 0; i < M; i++) {
scanf("%d", &A[i]);
}
// Чтение размера массива B
scanf("%d", &N);
// Чтение массива B
int B[20];
for (int i = 0; i < N; i++) {
scanf("%d", &B[i]);
}
// Инициализация массива C
int C[40]; // M + N <= 40 тк максимальный размер массива A и массива В по 20
int i = 0, j = 0, k = 0;
// Формирование массива C
while (i < M && j < N) {
if (A[i] <= B[j]) {
C[k] = A[i];
i++;
}
else {
C[k] = B[j];
j++;
}
k++;
}
// Добавление оставшихся элементов из A, если они есть
while (i < M) {
C[k] = A[i];
i++;
k++;
}
// Добавление оставшихся элементов из B, если они есть
while (j < N) {
C[k] = B[j];
j++;
k++;
}
// Вывод массива C
for (int i = 0; i < M + N; i++) {
printf("%d ", C[i]);
}
printf("\n");
return 0;
}