如何在数组中完成插入元素和删除元素的操作

插入的代码 :

#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--的操作即可。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值