Выведите элементы массива, полученного слиянием A и B, в порядке возрастания - C (СИ)
Формулировка задачи:
Слияние массивов
Даны два упорядоченных массива A, B. Требуется слить их в один упорядоченный массив.
_________________________________________________________________________
На входе
В первой строке находятся два числа – количество элементов в первом и втором массивах соответственно 0 < N,M ≤ 50000. Во второй строке располагаются N элементов массива A. В третьей строке располагаются M элементов массива B._________________________________________________________________________
На выходе
Выведите элементы массива, полученного слиянием A и B, в порядке возрастания_________________________________________________________________________
Пример#1
На входе
3 3 1 2 3 4 5 6На выходе
1 2 3 4 5 6Пример#2
На входе
3 2 1 3 5 2 4На выходе
1 2 3 4 5Решение задачи: «Выведите элементы массива, полученного слиянием A и B, в порядке возрастания»
textual
Листинг программы
#include <stdio.h> int* array_union(int* d, const int* f1, const int* l1, const int* f2, const int* l2){ while((f1 != l1) && (f2 != l2)){ if(*f1 < *f2) *d++ = *f1++; else if(*f2 < *f1) *d++ = *f2++; else { *d++ = *f1++; ++f2; } } while(f1 != l1) *d++ = *f1++; while(f2 != l2) *d++ = *f2++; return d; } int main(void){ int c[8], *p, *e; int a[] = { 1, 3, 5, }; int b[] = { 2, 4 }; e = array_union(c, a, a + sizeof(a)/sizeof(a[0]), b, b + sizeof(b)/sizeof(b[0])); for(p = &c[0]; p != e; ++p) printf("%d ", *p); return 0; }
Объяснение кода листинга программы
- В функции
array_union
происходит слияние двух массивов в один, с последующим выводом элементов полученного массива в порядке возрастания. - Вызов функции
array_union
в функцииmain
происходит с использованием массиваc
как приемника результата. - Массив
a
содержит элементы {1, 3, 5}, а массивb
содержит элементы {2, 4}. - В функции
main
вычисляется начальный и конечный указатели для массиваb
, используя операторsizeof
для вычисления длины массива. - Результатом работы функции
array_union
является указательe
, который указывает на последний элемент нового массива. - В цикле
for
происходит вывод элементов нового массива, начиная с первого элемента и заканчивая последним, с использованиемprintf
для вывода элементов. - Функция
main
возвращает 0, что означает успешное завершение работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д