Есть два отсортированных массива А и В. Надо в А загрузить все элементы В и отсортировать - 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;
}

Объяснение кода листинга программы

Код выполняет следующие действия:

  1. Задает два массива, array_l[] и array_2[], и инициализирует их значениями.
  2. Создает массив array_res[] размером SIZE_1 + SIZE_2 для хранения результата.
  3. Заполняет первые SIZE_1 элементов массива array_res[] значениями из массива array_l[].
  4. Выводит значения массива array_res[] на экран.
  5. Устанавливает переменную limit равной SIZE_1, а переменную jdx равной 0.
  6. Проходит циклом по массиву array_2[], и для каждого элемента выполняет следующие действия:
    • Ищет элемент в массиве array_l[] с помощью цикла в диапазоне SIZE_1.
    • Если элемент найден, то он копируется в массив array_res[], индекс добавляется к переменной limit, а элемент сдвигается вправо в массиве array_2[].
    • Если элемент не найден, то он копируется в массив array_res[] после всех найденных элементов.
  7. Выводит значения массива array_l[] и array_2[] на экран.
  8. Требуется сортировка массива array_res[] размером limit.
  9. Возвращает 0, что означает успешное выполнение программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.75 из 5
Похожие ответы