当前位置:首页 » 编程语言 » c语言数组的删除

c语言数组的删除

发布时间: 2024-05-06 20:52:33

1. c语言数组元素的删除与增加。

C语言中的数组本质上是在计算机内存中分配的连续空间。

如果需要对元素进行插入和删除,并不能直接将内存中为该数组分配的空间进行插入/新增和删除,而是只能通过数据复制的方式将本来不在这个位置的元素进行移动,看起来像是元素的前移和后移。

举个例子吧:整型数组(1, 2, 3, 4, 5),如果要把2删除,那么可以将3,4,5分别向前移动,变成(1, 3, 4, 5, 5)。由于数组长度分配以后不会变化,因此最后一个多余的5实际上并不能删掉,它只是表示无意义的位置。因此对于编程人员来讲,需要另一个参数来记录这个数组中你认为有用的元素是前多少个。

值得注意的是,如果数组长度不足以保存新的元素时,是无法动态地增加数组长度的。如果非要这么做,必须要在数组分配时保证数组大小足够大。这也就是一些新手经常将数组长度设置为1000,10000的原因。

回到这个问题:

//预定义的数组,长度为20
intarray[20]={0};
//数组当前有效长度
intarrayLen=0;

//如果不是全局数组,则需要将数组指针和数组长度指针传入进行修改
voidinsertArray(intnewElement,intindex)
{
//这里没有做数组长度的检验,你需要自己完成

inti;
for(i=arrayLen++;i>index;)
array[i--]=array[i-1];//后移

array[index]=newElement;
}

voiddeleteArrayElement(intindex)
{
for(;index<arrayLen;)
array[index++]=array[index+1];//前移。要删除的位置会被直接覆盖

arrayLen--;
}

2. C语言中怎么删除数组中的一个元素

方法:

删除就是将其下标所在位置的中的内容置为空(也就是0),然后从此位置开始,后面的内容前移,再把最后那个位置的置为空(就是0)。

前移无非就是 类似 arr[ i - 1] = arr[ i ] 这个意思。

3. c语言:从数组中删除数据怎么做

#include<stdio.h>
#define N 10
void main( )
{
int a[N] , num ,i , *p , n=N;
int j;

/*输入N个数到数组a中;*/
for(i=0;i<n;i++)
{
scanf(“%d”,&num);
a[i]=num;
}

/*在数组a中删除指定的数num;*/
for(i=0;i<n;i++)
{
if(a[i] == num)
{
//a[i]=a[n];//如果不保留原数组里的顺序,此一句即可代替下边2行语句,同时省掉变量j

for(j=i;j<n-1;j++)
a[j]=a[j+1];

n--;
}
}

/*输出删除了num后的数组a;*/
for(i=0;i<n;i++)
printf("%d ",a[i]);

getchar();
}

热点内容
安卓系统怎么注册不了ins 发布:2024-05-19 14:01:00 浏览:960
买服务器后怎么搭建功能 发布:2024-05-19 14:00:03 浏览:207
windows文件夹图标下载 发布:2024-05-19 13:25:44 浏览:689
数据库存储数据类型 发布:2024-05-19 13:25:28 浏览:584
电脑开机密码忘记了如何解锁没有管理员窗口 发布:2024-05-19 13:24:50 浏览:277
畅捷支付刷脸机如何设置密码 发布:2024-05-19 13:03:10 浏览:764
java麻将 发布:2024-05-19 13:03:00 浏览:433
存储过程大数据游标 发布:2024-05-19 13:00:50 浏览:515
内存存储价格 发布:2024-05-19 13:00:48 浏览:389
隔离期的算法 发布:2024-05-19 12:55:13 浏览:530