在 C 语言数组中插入元素

CBeginner
立即练习

介绍

在 C 语言中,数组(array)是存储在连续内存位置中的相同数据类型的集合。它有助于在单个变量名下存储多个值,从而节省内存空间并简化代码结构。在本实验中,我们将学习如何在数组的特定位置插入一个元素。

注意:你需要自己创建文件 ~/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 语言在数组的指定位置插入元素。我们创建了一个初始数组,获取了用户输入的新元素和插入位置,通过将现有元素向右移动的方式在指定位置插入新元素,并显示了插入后的新数组。