数组的插入和删除

数组的插入和删除

插入

步骤:

1.找到插入位置
2.腾位置:从最后一个元素开始,将数字复制到后一个元素中
3.插入
4.数组长度+1

#include <iostream>
using namespace std;

int main()
{
    //实现数组的插入
    double power[10] {236,789,546,987}; //数组的大小一定确定了,就不可以更改。
    int powerCount = 4;//当前数组中元素个数

    //排序
    for(int i=0; i<powerCount-1; i++)
        for(int j=0; j<powerCount-i-1; j++)
        {
            if(power[j]>power[j+1])
            {
                int t=power[j];
                power[j]=power[j+1];
                power[j+1]=t;
            }
        }
    for(int i=0; i<powerCount; i++)
        cout<<power[i]<<" ";
    cout<<endl;

    //插入——有序插入
    int insertPower;

    //注意这里最好给insertIndex赋初值为powerIndex,
    //因为你很可能插入的数字到数组尾部,这时候就没有可以比较的值,就不会进行插入了
    int insertIndex=powerCount;
    cout<<"请输入要插入的元素:"<<endl;
    cin>>insertPower;

    for(int i=0; i<powerCount; i++)
    {
        //1.找到插入位置
        if(insertPower<  power[i])
        {
            insertIndex=i;
            break;
        }
    }
    //2.腾位置:从最后一个元素开始,将数字复制到后一个元素中
    for(int i=powerCount-1; i>=insertIndex; i--)
        power[i+1]=power[i];
    //3.插入
    power[insertIndex]=insertPower;

    //4.数组长度+1
    powerCount++;

    for(int i=0; i<powerCount; i++)
        cout<<power[i]<<" ";
    cout<<endl;


    return 0;
}

删除

步骤:
1.找到删除位置
2.删位置:从找到的元素开始,将数值复制到前一个元素中
3.数组长度-1

#include <iostream>
using namespace std;

int main()
{
    //实现数组的插入
    double power[10] {236,789,546,987}; //数组的大小一定确定了,就不可以更改。
    int powerCount = 4;//当前数组中元素个数


    //删除
    int deletePower;
    int deleteIndex=-1;

    cout<<"请输入要删除的是数字:"<<endl;
    cin>>deletePower;

    for(int i=0; i<powerCount; i++)
    {
        //1.找到删除位置
        if(deletePower== power[i])
        {
            deleteIndex=i;
            break;
        }
    }
    if(deleteIndex==-1)
        {
            cout<<"没有找到请查看输入是否有误"<<endl;
            exit(0);
        }

    //2.删位置:从找到的元素开始,将数值复制到前一个元素中
    for(int i=deleteIndex; i<powerCount-1; i++)
        power[i]=power[i+1];

    //3.数组长度-1
    powerCount--;

    for(int i=0; i<powerCount; i++)
        cout<<power[i]<<" ";
    cout<<endl;


    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值