Введение
В C массив - это коллекция элементов одного и того же типа данных, хранящихся в последовательных ячейках памяти. Это позволяет хранить несколько значений под одним именем переменной, экономя память и упрощая структуру кода. В этом практическом занятии мы научимся вставлять элемент в массив в заданной позиции.
Примечание: вам нужно самостоятельно создать файл
~/project/main.cдля практики написания кода и изучения процесса компиляции и запуска программы с использованием gcc.
cd ~/project
## создать main.c
touch main.c
## скомпилировать main.c
gcc main.c -o main
## запустить main
./main
Создание массива
В этом шаге мы создадим массив с начальными элементами и выведем их значения на экран.
#include <stdio.h>
int main() {
// Объявляем переменные и массив
int array[5] = {10, 20, 30, 40, 50};
int n = 5, i;
printf("Начальный массив: ");
for(i=0; i<n; i++) {
printf("%d ", array[i]);
}
return 0;
}
Получение ввода от пользователя
В этом шаге мы получим от пользователя ввод нового значения для вставки и индекса, по которому будет произведена вставка.
#include <stdio.h>
int main() {
// Объявляем переменные и массив
int array[5] = {10, 20, 30, 40, 50};
int n = 5, i, value, position;
printf("Начальный массив: ");
for(i=0; i<n; i++) {
printf("%d ", array[i]);
}
// Получаем ввод для нового значения и позиции
printf("\n\nВведите значение для вставки: ");
scanf("%d", &value);
printf("Введите позицию для вставки: ");
scanf("%d", &position);
return 0;
}
Вставка элемента
В этом шаге мы вставим новый элемент в массив в заданной позиции. Мы сдвинем существующие элементы вправо от заданной позиции и добавим новый элемент по индексу заданной позиции.
#include <stdio.h>
int main() {
// Объявляем переменные и массив
int array[5] = {10, 20, 30, 40, 50};
int n = 5, i, value, position;
printf("Начальный массив: ");
for(i=0; i<n; i++) {
printf("%d ", array[i]);
}
// Получаем ввод для нового значения и позиции
printf("\n\nВведите значение для вставки: ");
scanf("%d", &value);
printf("Введите позицию для вставки: ");
scanf("%d", &position);
// Сдвигаем существующие элементы вправо от заданной позиции
for(i=n-1; i>=position-1; i--) {
array[i+1] = array[i];
}
// Вставляем новый элемент по индексу заданной позиции
array[position-1] = value;
return 0;
}
Отображение результата
В этом шаге мы выведем на экран новый массив с вставленным элементом.
#include <stdio.h>
int main() {
// Объявляем переменные и массив
int array[5] = {10, 20, 30, 40, 50};
int n = 5, i, value, position;
printf("Начальный массив: ");
for(i=0; i<n; i++) {
printf("%d ", array[i]);
}
// Получаем ввод для нового значения и позиции
printf("\n\nВведите значение для вставки: ");
scanf("%d", &value);
printf("Введите позицию для вставки: ");
scanf("%d", &position);
// Сдвигаем существующие элементы вправо от заданной позиции
for(i=n-1; i>=position-1; i--) {
array[i+1] = array[i];
}
// Вставляем новый элемент по индексу заданной позиции
array[position-1] = value;
// Отображаем новый массив
printf("\n\nНовый массив с вставленным элементом: ");
for(i=0; i<n+1; i++) {
printf("%d ", array[i]);
}
return 0;
}
Конечный код
Ниже приведен финальный код для вставки элемента в массив.
#include <stdio.h>
int main() {
// Объявляем переменные и массив
int array[5] = {10, 20, 30, 40, 50};
int n = 5, i, value, position;
printf("Начальный массив: ");
for(i=0; i<n; i++) {
printf("%d ", array[i]);
}
// Получаем ввод для нового значения и позиции
printf("\n\nВведите значение для вставки: ");
scanf("%d", &value);
printf("Введите позицию для вставки: ");
scanf("%d", &position);
// Сдвигаем существующие элементы вправо от заданной позиции
for(i=n-1; i>=position-1; i--) {
array[i+1] = array[i];
}
// Вставляем новый элемент по индексу заданной позиции
array[position-1] = value;
// Отображаем новый массив
printf("\n\nНовый массив с вставленным элементом: ");
for(i=0; i<n+1; i++) {
printf("%d ", array[i]);
}
return 0;
}
Резюме
В этом практическом занятии мы научились вставлять элемент в массив в определенной позиции с использованием языка C. Мы создали начальный массив, получили от пользователя ввод для нового элемента и позиции, вставили элемент в массив в указанной позиции, сдвинув существующие элементы вправо, и вывели на экран новый результирующий массив.



