介绍
在 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 语言在数组的指定位置插入元素。我们创建了一个初始数组,获取了用户输入的新元素和插入位置,通过将现有元素向右移动的方式在指定位置插入新元素,并显示了插入后的新数组。



