给定一个数组,完成对某个元素的删除操作(c语言)
发布网友
发布时间:2022-04-27 01:03
我来回答
共4个回答
热心网友
时间:2022-06-22 00:36
给你个思路,找到指定的数组,将其后的数据前移,相当于把它删除了.比如说要删除第m个元素
for(int i=m;i<ArrayLen-1;i++)
{
a[i]=a[i+1];
}
热心网友
时间:2022-06-22 00:36
#define N 5
#include<stdio.h>
void main()
{
int i,*p,*q,a[N],e,k,count;
count=N;
printf("Enter the numbers:");
for(i=0;i<N;i++)
scanf("%d",&a[i]);
printf("enter the number you want to delet: ");
scanf("%d",&e);
for(i=0;i<N;i++)
{
if(a[i]==e)
{
k=i;
}
}
q=&a[k];
p=&a[N];
for(++q;p>=q;++q)
{
*(q-1)=*q;
}
--count;
printf("the new array is :");
for(i=0;i<count;i++)
printf("%3d",a[i]);
getch();
}
热心网友
时间:2022-06-22 00:36
#include<stdio.h>
int main()
{
int n,m,k;
int a[50];
while(scanf("%d",&n)!=EOF){
for(int j=0;j<n;j++){
scanf("%d",&a[j]);
}
scanf("%d",&m);
for(int j=0;j<n;j++){
if(a[j]==m){
for(int i=j;i<n;i++){
a[i]=a[i+1];
}
n--;
j--;
}
else{
continue;
}
}
for(int k=0;k<n;k++){
printf("%d ",a[k]);
}
printf("\n");
return 0;
}
}
热心网友
时间:2022-06-22 00:37
不知道你说的删除操作是个什么根念,只是作处删除标志,还是真正从内存中删除掉,如果只做删除标志的话,你用for循环,遍历找到第n个元素,将值赋为标志值,注意,数组的下标是从0开始的