Вставка в массив

#arrays #c #algorithm #data-structures

#массивы #c #алгоритм #структуры данных

Вопрос:

В этой задаче вам нужно проиллюстрировать процесс вставки элемента в массив. Входные данные — это исходный массив, элемент для вставки и позиция для вставки. В результате необходимо отобразить журнал процесса вставки элемента в фиксированном формате.

Формат ввода Первая строка содержит количество элементов в исходном массиве. Вторая строка содержит сам массив. Третья строка содержит пару чисел / textitn, / textitpos — элемент для вставки и позиция вставки

Формат выходного журнала алгоритма в указанном формате

Начальный массив: 15 элементов для вставки: 11 Позиций для вставки: 0 Операций: 15 15 11 15 Всего операций: 2

Я не понимаю, чего они хотят здесь, кто-нибудь может мне помочь, пожалуйста?

Комментарии:

1. конечно, кто-нибудь поможет, но они ожидают некоторых начальных усилий от аскера

Ответ №1:

Они хотят посмотреть, как использовать память, как перемещать данные и так далее. Во-первых, думайте просто!

Пример:

 3      3        3        3
1 2 3  1 2 3 _  1 _ 2 3  1 4 2 3
2 4    2 4      2 4      2
 

В этом случае поместите 4 на 2. Но памяти не хватает. Так что выделите память. А затем откройте позицию 2. Наконец, 4 перехода к 2 таким образом выполнены!
Все, что осталось, это переместить запись в код.

Комментарии:

1. На языке C первое значение управляющей переменной начинается с 0 до последнего значения элемента управления -1 , в вашем примере результат должен быть 1 2 4 3, а не 1 4 2 3

Ответ №2:

Этот код может помочь вам

Я использую два массива, первый для заполнения элементов массива, а второй для четных элементов первого массива, затем я считываю значение вставки и ее индекс и сдвигаю элементы с помощью цикла for, затем я отображаю массив

 #include <stdio.h>

int main()
{
    int size;
    do
    {
         printf("Enter the size of the arrayn");
         scanf("%d", amp;size);
    }while(size<1);
   int num[size 1];
   int num2[size];
   int j=0;
   printf("Enter the elementsn");

   for (int i = 0; i < size; i  )
   {
        printf("Put the %d element :",i);
        scanf("%d", amp;num[i]);
        if(num[i]%2==0)
        {
             num2[j]=num[i];
             j  ;
        }
    }
    printf("nThe Numbers pairs are :n");

    for(int k=0;k<j;k  )
    {
          printf("[%d]",num2[k]);
    }
    printf("nn");

   int val,index_val;
   printf("Give me the value :");
   scanf("%d",amp;val);

   do
   {
        printf("Give me the index of insertion of this value :");
        scanf("%d",amp;index_val);
   }while(index_val<0||index_val>size);

    for(int p=size-1;p>=index_val;p--)//element shift loop
    {
          num[p 1]=num[p];
    }
    num[index_val]=val;

    printf("nDisplay Of the Array :n");
    for(int i=0;i<=size;i  )
    {
         printf("[%d]",num[i]);
    }
    printf("n");
}