Вставка элементов в массивы на C

CBeginner
Практиковаться сейчас

Введение

В 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. Мы создали начальный массив, получили от пользователя ввод для нового элемента и позиции, вставили элемент в массив в указанной позиции, сдвинув существующие элементы вправо, и вывели на экран новый результирующий массив.