Есть два отсортированных массива А и В. Надо в А загрузить все элементы В и отсортировать - C (СИ)
Формулировка задачи:
Всем Привет!!!
Нужна помощь! Не получается! Надеюсь на вашу помощь!
Есть два отсортированных массива А и В. Надо в А загрузить все элементы В и отсортировать! Если совпадают элементы то этот элемент оставить в В.
А: 3 5 9 12 15 16
В: 1 2 5 7 12 16
В результате:
А: 1 2 3 5 9 7 12 15 16
В: 5 12 16
не получается! со вторым массивом! помогите пожалуйста!!!
Решение задачи: «Есть два отсортированных массива А и В. Надо в А загрузить все элементы В и отсортировать»
textual
Листинг программы
#include <stdio.h> #define SIZE_1 3 #define SIZE_2 3 int array_l[SIZE_1] = {1, 2, 3}; int array_2[SIZE_2] = {4, 1, 5}; int array_res[SIZE_1 + SIZE_2]; int main() { int idx, jdx, kdx, size_2=SIZE_2; int limit, temp; for(idx = 0; idx < SIZE_1; idx++) { array_res[idx] = array_l[idx]; printf("%5d", array_res[idx]); printf("%c", (idx + 1)%10 ? ' ' : '\n'); } limit = SIZE_1; jdx = 0; for(idx=0; idx < size_2; idx++) { for(kdx = 0; kdx < SIZE_1; kdx++) if(array_l[kdx] == array_2[idx]) break; if(kdx == SIZE_1) { array_res[limit++] = array_2[idx]; for(kdx = idx; kdx < size_2-1; kdx++) array_2[kdx]=array_2[kdx+1]; size_2--; } } //вот здесь нужна сортировка массива array_res[] который имеет размер limit printf("\narray_l:\n"); for(idx=0; idx < limit; idx++) printf("%5d ", array_res[idx]); printf("\narray_2:\n"); for(idx=0; idx < size_2; idx++) printf("%5d ", array_2[idx]); return 0; }
Объяснение кода листинга программы
Код выполняет следующие действия:
- Задает два массива, array_l[] и array_2[], и инициализирует их значениями.
- Создает массив array_res[] размером SIZE_1 + SIZE_2 для хранения результата.
- Заполняет первые SIZE_1 элементов массива array_res[] значениями из массива array_l[].
- Выводит значения массива array_res[] на экран.
- Устанавливает переменную limit равной SIZE_1, а переменную jdx равной 0.
- Проходит циклом по массиву array_2[], и для каждого элемента выполняет следующие действия:
- Ищет элемент в массиве array_l[] с помощью цикла в диапазоне SIZE_1.
- Если элемент найден, то он копируется в массив array_res[], индекс добавляется к переменной limit, а элемент сдвигается вправо в массиве array_2[].
- Если элемент не найден, то он копируется в массив array_res[] после всех найденных элементов.
- Выводит значения массива array_l[] и array_2[] на экран.
- Требуется сортировка массива array_res[] размером limit.
- Возвращает 0, что означает успешное выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д