C语⾔实现删除某⼀个数组值的⽅法
⽬录
1、前⾔
2、删除数组中的元素
1、前⾔
在家⾥闲着还是闲着,这⼏天见证了Python各种数据结构的强⼤。Python中的数据类型如:列表、元组、字典等都具有其的特点。列表⽆需要设定其的长度,我们可以随机插⼊元素,同时元素的类型也是随意的。
或许这就是⾯向对象语⾔的强⼤,C语⾔做为⾯向过程的语⾔⾃然没有如同Python⼀般强⼤的功能。学习C语⾔不会指针和结构体确实玩不出什么东西,就例次CCF考试的字符串处理题使⽤C语⾔难度都很⼤,但是使⽤诸如C++⼀样⾯向对象的语⾔都是能轻⽽易举地解决问题的。java定义一维数组并赋值
不过为了让以后处理C语⾔更加⽅便,个⼈打算今后在这记录⼀些使⽤的函数,⼤家可以⾃取。
2、删除数组中的元素
python中我们可以轻易地使⽤如下的⽅法删除特定的元素:
lang = ["Python", "C++", "Java", "PHP", "Ruby", "MATLAB"]
#使⽤正数索引
del lang[2]
print(lang)
然⽽C语⾔⼀切东西都得靠⾃⼰搭建。在学习数据结构时第⼀个实验就是与顺序表处理相关的内容,这⾥介绍的就是其中⼀个操作。
我们在这边就可以先定义⼀个函数,参数分别是数组名和数组长度:
void del_element(int arr[],int n) //n为数组的元素个数
数组的长度虽然需要我们⾃⼰给定,但是我们不必要直接写出其具体的元素个数,⽽直接先向数组中赋值。
int arr[]={1,4,5,7};
既然要删除数组中的元素,我们就必须得先知道数组中有哪些元素。同时还要定义⼀个变量,并将需要删除的元素赋值给那个变量。
int delect=0;
printf("删除操作前的数组:\n");
for(int k = 0;k<n;k++)
{
printf("%4d",arr[k]);
}
printf("\n");
printf("请输⼊你要删除的数:");
scanf("%d",&delect);
下⾯就是重中之中,删除这个元素的操作:
将要删去的元素后⾯的元素往前移,那个要删除的函数⾃然⽽然就被覆盖掉了。
函数源代码:
void del_element(int arr[],int n) //n为数组的元素个数
{
int delect=0;
printf("删除操作前的数组:\n");
for(int k = 0;k<n;k++)
{
printf("%4d",arr[k]);
}
printf("\n");
printf("请输⼊你要删除的数:");
scanf("%d",&delect);
for(int i=0;i<=n-1;i++)
{
if(delect==arr[i])
{
for(int j=i;j<=n-2;j++)
{
arr[j]=arr[j+1];//覆盖
}
}
}
}
下⾯我们在主函数中调⽤该函数:
int main()
{
int arr[]={1,4,5,7};
int length_arr = sizeof(arr)/sizeof(int);
del_element(arr,length_arr);
printf("完成操作后的数组:\n");
for(int i=0;i<length_arr-1;i++)
{
printf("%4d",arr[i]);
}
return 0;
}
我们可以不需去计算数组元素个数,⽽是使⽤sizeof(arr)/sizeof(int)的⽅式计算数组长度。
操作过程与结果:
C语⾔虽然较为⿇烦,但是我们仍然可以⽤⼀些简单的⽅法实现。
到此这篇关于C语⾔数组中删除数组中某个值的⽅法的⽂章就介绍到这了,更多相关C语⾔数组中删除数组中某个值内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。