㈠ c语言中删除一个数组怎么写
如果数组是有序的,
需要把后面的数据挨个挪上来占掉前一个的位置,
然后把整个数组长度的记录减1.
或者干脆用链表,别用数组了
如果数组是无序的,
可以把最后一个记录挪上来占掉要删除的这个记录位置,然后吧数组长度的记录减1
㈡ C语言数组删除
#include<stdio.h>
int main()
{ int i,i1,j,k,n,a[101];
scanf("%d",&n);
for(i=1; i<=n; i++)
{ a[i]=i;
printf("%3d",a[i]);
}
printf(" ");
i=1,k=n;
for(i1=0; i1<n/2; i1++)
{ a[i++]=a[k--]=0;
for(j=1; j<=n; j++)
printf("%3d",a[j]);
printf(" ");
}
return 0;
}
㈢ c语言数组元素的删除
对于数组删除,一般就是使用后面数组元素前移的操作,来覆盖前一元素,达到删除的效果。。。。
例如数组a[10],要删除a[5]这个元素,那么只需要把后面的元素前移一位就行了,也就是a[5]=a[6],a[6]=a[7],a[7]=a[8],这样子a[5]这个元素的内容就会被全部抹杀掉了。。。。
不过这里存在一个问题,你一个结构体数组前移的时候,如何判断有多少个元素要前移呢。。。。
所以我的做法是在结构体里面定义一个标示符int flag。。。。
当对这个结构体数组元素赋值时,如a[10].name="KING" 时,那么就是说下标值为10的元素是存在的,赋完值后,来个a[10].flag=1 来标记一下。。。。
这样做的话,我们可以进行这样的删除操作了,如删除下标值为5的元素——
int i=5;
for(int j=i+1;a[j].flag==1;i++,j++)
{
a[i]=a[j];
/* 结构体数组可以直接这样子做,它会自动把a[i]里面的变量等于a[j]里面对应的变量 */
}
a[i].flag=0;
/* 如果你里面原来有10个元素,那么删除了其中一个,那就剩下9个,a[9]那个位置应该为空,一一把里面的元素清空太麻烦,直接把它的标示符flag等于0,就表示该位置为空的 */
㈣ C语言,删除数组元素
void main()
{
int i,j,n;
int a[10];
int k=0; //记录删除数据的个数
printf("请输入需要删除的数:\n");
scanf("%d",&n);
printf("请输入10个元素的数组: \n");
for (i=0;i<10;i++)
scanf("%d",&a[i]);
for (i=0;i<10;i++)
if (a[i]==n)
{
for (j=0;i+j<9;j++)
a[i+j]=a[i+j+1];
k++;//删除数据的个数加1
a[10-k] = 0; //清除最后一个已经前移过的数据
}
for (i=0;i<10-k;i++)//输出剩余的数据,后面的数据为0代表已经被删除的无意义数据,不必再输出了。
printf("%5d",a[i]);
}
㈤ c语言中怎么删除数组中的第七位数
摘要 main()
㈥ C语言中删除一个数组元素
一般的数组元素无法删除,只能将值改变为另一个特定的值,然后发现这个值就直接转向下一个元素.
用链表可以删除表中的一个结点.
㈦ 在C语言中如何把数组清空
C语言貌似没有把数组清空的方法啊,或许你可以清除就把它赋值为0,这样在形式上实现了清楚,不然的话只有动态申请的内存可以释放。