概述
C语言实现删除数组中某个元素
大家知道C语言实现删除数组中某个元素方法吗?下面将讲述在C语言中实现删除数组中某个元素的两种方法,大家一起看看吧。
方法1:
/*
name: c语言 删除数组的某个元素
tip:
数组元素的增/删/ 改/查(简单遍历就ok)
数组增删操作在c语言中没有相应的函数------我们最好是 自己写个函数保存好
注意代码缩进,对齐
*/
#include<stdio.h>
int main()
{
//删
int arr[]={1,3,10,5,4,} ;
int delect=0;
int i=0,j=0,k=0;
int n;//n为数组长度
n=sizeof(arr)/sizeof(int);
//printf("%dn",n);//测试n
printf("删除前数组为:");
for(k=0;k<=n-1;k++)
{
printf("%4d",arr[k]);
}
printf("n");
//输入提示:
printf("请输入要删除的数:");
scanf("%d",&delect);
for(i=0;i<=n-1;i++)
{
if(delect==arr[i])
{
for(j=i;j<=n-2;j++)
{
arr[j]=arr[j+1];//覆盖
}
// goto loop1;
}/*执行完这个if引导的代码块后,删除工作已ok了,但程序还会把循环跑完,
会自然想到break ,但仔细一想,不好控制,不行,,,
最好的解决方法-goto 或 记录下标,出循环后处理这个下标
*/
}
/*
此处 也可以使用 记录下标delectindex的方法 ---推荐使用,因为上面的
代码在执行的时候 会多run些无用的步骤,具体见上面的注释
*/
//loop1:
printf("删除后数组为:");
for(k=0;k<=n-2;k++)
{
printf("%4d",arr[k]);
}
printf("n");
return 0;
}
登录后复制
方法2:记录下标
/*
name: c语言 删除数组的某个元素
tip:
数组元素的增/删/ 改/查(简单遍历就ok)
数组增删操作在c语言中没有相应的函数------我们最好是 自己写个函数保存好
注意代码缩进,对齐
*/
#include<stdio.h>
int main()
{
//删
int arr[]={1,3,10,5,4,} ;
int delect=0;
int delectIndex=0;
int i=0;//相比于上一个代码,少定义了k,j,---这种用来控制循环的变量,在不是嵌套的情况下,可以只定义一个
//(尽量少定义变量,减少内存占用)
int n;//n为数组长度
n=sizeof(arr)/sizeof(int);
//printf("%dn",n);//测试n
printf("删除前数组为:");
for(i=0;i<=n-1;i++)
{
printf("%4d",arr[i]);
}
printf("n");
//输入提示:
printf("请输入要删除的数:");
scanf("%d",&delect);
for(i=0;i<=n-1;i++)
{
if(delect==arr[i]) delectIndex=i;//记录要删除元素的下标
}
for(i=delectIndex;i<=n-2;i++)
{
arr[i]=arr[i+1];
}
//想知道较为具体的执行过程---debug 或 写些printf(建议使用)
printf("删除后数组为:");
for(i=0;i<=n-2;i++)
{
printf("%4d",arr[i]);
}
printf("n");
return 0;
}
登录后复制
感谢大家的阅读,希望大家收益多多。
本文转自:https://blog.csdn.net/csdn17355456893/article/details/76883951
推荐教程:《C语言》
以上就是C语言实现删除数组中某个元素的详细内容,更多请关注靠谱客其它相关文章!
最后
以上就是陶醉钻石为你收集整理的C语言实现删除数组中某个元素的全部内容,希望文章能够帮你解决C语言实现删除数组中某个元素所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复