#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");
}