插入的代码 :
#include <iostream>
using namespace std;
int main()
{
int a[11] = { 0,1,2,3,4,5,6,7,8,9 }; // 数组大小增加到11,避免越界
int length = 10; // 数组长度
int j; // 用于记录要插入元素的地方
cout << "请输入要插入元素的位置 (0到9): ";
cin >> j;
// 检查输入是否有效
if (j < 0 || j >= length)
{
cout << "错误:输入的位置无效!" << endl;
return 1; // 退出程序
}
// 将j及之后的元素向后移动
for (int i = length; i > j; i--)
{
a[i] = a[i - 1];
}
cout << "请输入要插入的元素位置: ";
cin >> a[j]; // 在位置j插入元素
// 检查是否插入成功
cout << "插入元素后的数组: ";
for (int k = 0; k <= length; k++)
{ // 打印数组
cout << a[k] << ' ';
}
cout << endl;
return 0;
}
这里要稍微注意的是,要特别把数组的大小在元素的个数上加一,避免越界。
具体的情况要具体而定作出微小的改变:假设我们现在是做的一个关于学生元素的插入,那么在日常中我们肯定是把a[0]当作第一个而不是第0个,那么我们要做的就是:cout << "请输入要添加元素的位置(1到9)" 以及 for(int i=length; i>=j ;i--); 这两个操作
删除的代码:
#include <iostream>
using namespace std;
int main()
{
int a[11] = { 0,1,2,3,4,5,6,7,8,9 }; // 数组大小增加到11,避免越界
int length = 10; // 数组长度
int j; // 用于记录要删除元素的地方
cout << "请输入要删除元素的位置 (0到9): ";
cin >> j;
// 检查输入是否有效
if (j < 0 || j >= length)
{
cout << "错误:输入的位置无效!" << endl;
return 1; // 退出程序
}
// 将j及之后的元素向前移动(可覆盖掉要删除的元素)
for (int i = j; i <length-1; i++)
{
a[i] = a[i + 1];
}
// 检查是否删除成功
cout << "删除元素后的数组: ";
for (int k = 0; k < length-1; k++)
{ // 打印数组
cout << a[k] << ' ';
}
cout << endl;
return 0;
}
这里大家会发现我在输出数组元素时,在循环里进行了length-1的操作,这是因为我们以及删除了一个元素了,所以在遍历的时候-1。这里有一个比较简单的方法,避免去减,就是将length 定义成一个静态(static)变量,在第一个for循环完成后,进行length--的操作即可。