C语言中删除一个数组元素
发布网友
发布时间:2022-04-27 01:03
我来回答
共5个回答
热心网友
时间:2022-06-22 00:36
如果数组里全是3 那我输入要删除的3之后 楼主想要一个什么结果呢
是9个3 还是一个元素也不输出?
下面的程序可能能实现楼主的意思
#include<stdio.h>
void main()
{
int a[10]={1,3,7,61,86,12,75643,8989,1,3},n,i;
printf("input the number to delete:");
scanf("%d",&n);
for(i=0;i<10;i++)
if(a[i]!=n)
printf("%d ",a[i]);
}
热心网友
时间:2022-06-22 00:36
可以设定 先把数组所有值都赋值
查找可以通过循环比对
for (i=0;i++;i<arraylenth)
{
if x==a[i]
{ flag=0;
a[i]=null;
}
}
然后通过判断flag来看看是否找到数据
将数组元素置空来表示删除
热心网友
时间:2022-06-22 00:36
找到这个数后把后面的数依次前提一位,输出时丢弃找到的最后几个..
#define N 10
main(){
int a[N]={1,3,7,61,86,12,75643,8989,1,3} ;
int i,j,tem,delnum;
tem=0;
printf("\nEnter del num:");
scanf("%d",&delnum);
for(i=0;i<N-tem;i++){
if(a[i]==delnum){
tem++;
for(j=i;j<N-tem;j++)
a[j]=a[j+1];
}
}
printf("\n");
for(i=0;i<N-tem;i++)
printf("%d,",a[i]);
getch();
return;
}
热心网友
时间:2022-06-22 00:37
一般的数组元素无法删除,只能将值改变为另一个特定的值,然后发现这个值就直接转向下一个元素.
用链表可以删除表中的一个结点.
热心网友
时间:2022-06-22 00:38
一维数组啊,其实实现一个数的删除很简单啊,只要不输出就行,你说的那个方法也行,或者直接记住这个下标,输出时加个条件判断就行,达到目的就好了,不必拘泥形式。
#include<stdio.h>
int
main()
{
int
a[2][2]={1,2,3,4},n;
printf("input
the
number
to
delete:");//输入查找的数
scanf("%d",&n);
for(int
i=0;i<2;i++)
for(int
j=0;j<2;j++)
if(a[i][j]==n)
a[i][j]=0;//找到修改成0,只能修改
不能删除
//输出
for(int
i=0;i<2;i++)
for(int
j=0;j<2;j++)
printf("%d",a[i][j]);
getchar();
getchar();
return
0;
}