数组用C++语言编写程序

2025-03-18 01:33:04
推荐回答(2个)
回答1:

#include
using namespace std;
int del(int num,int a[]);
int main()
{
    int n,del_num;    
    int a[100];
    cout<<"请往输入数据(100以内),并以0结束"<    for(int i=0;i!=100;i++)
    {
        cin>>a[i];
        if(a[i]==0)
            break;
    } 
    cout<<"要删除的数:"<    cin>>del_num;
    //删除数组中的指定元素 
     del(del_num,a);
    for(int i=0;i!=100;i++)
    {
        cout<        if(a[i]==0)
            break;
    }
    cout<}
/*
*根据输入num删除数组中的元素,删除方式为:数组往前迁移的方式,该算法没有
*额外开辟数组进行数组搬迁,空间复杂度较优
*/ 
int del(int num,int a[])
{
    int pos=-1;
    for(int i=0;i!=100;i++)
    {
        if(a[i]==num)
        {//找到要删除元素的第一次出现的位置,若没有出现则pos=-1,直接返回 
            pos=i;
            break;
        }
        if(a[i]==0)
            break;    
    }
    //数组中没有要删除的元素,直接返回 
    if(pos<0)
        return 0;
    //将数组迁移 
    for(int p=pos,q=pos+1;p!=100;p++)
    {
        if(a[p]==0)
            return 0;
        while(q!=100)
        {//该循环将后面出现的要删除的数一并跳过,实现删除 
            if(a[q]!=num)
                break;
            if(a[q]==0)
                break;
            q++;
        }
        a[p]=a[q];
        q++;
    }
    return 0;
}

回答2:

建立数组
从键盘读入整数存放数组中
从键盘读入要删除的元素
循环判断指定元素,若存在,利用memcpy将其后面的数据向前移动,长度减一