C语言 删除数组 某个元素

C语言 删除数组 某个元素方法 1 nbsp nbsp nbsp name c 语言 nbsp 删除数组的某个元素 nbsp nbsp tip nbsp nbsp 数组元素的增 删 nbsp nbsp nbsp 该 查 简单遍历就 ok nbsp nbsp nbsp 数组增删操作在 c 语言中没有相应的函数我们最好是自己写个函数保存好 nbsp nbsp nbsp 注意代码缩进 对齐 nbsp includeintma 删 intarr 1 3 10 5 4

 方法1:
 /* 
 name: c语言  删除数组的某个元素 
 tip:
   数组元素的增/删/      改/查(简单遍历就ok) 
   数组增删操作在c语言中没有相应的函数——我们最好是 自己写个函数保存好 
   注意代码缩进,对齐 
*/

#include


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(“%d\n”,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


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(“%d\n”,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://javaforall.net/214195.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午4:46
下一篇 2026年3月18日 下午4:47


相关推荐

  • 鸿蒙3部曲先看哪部,“隋唐三部曲”“鸿蒙三部曲”“斗罗四部曲”谁才是网文巅峰之作…

    鸿蒙3部曲先看哪部,“隋唐三部曲”“鸿蒙三部曲”“斗罗四部曲”谁才是网文巅峰之作…原标题:“隋唐三部曲”“鸿蒙三部曲”“斗罗四部曲”谁才是网文巅峰之作从网络小说诞生的那一刻起,续集就是一个绕不过去的话题,如同电视剧一样。一部网络小说红了之后,它的原作者很多时候会忍不住开发它的续集,形成一个系列,然后再现网文界。小编今天就给大家介绍一下网文界最为著名的三个系列:“隋唐三部曲”“鸿蒙三部曲”“斗罗四部曲”,它们都曾红极一时,写下了赫赫威名,是网文界绕不过去系列作品,也是把作品开发到…

    2022年6月29日
    75
  • 坑爹的file_exists

    坑爹的file_exists

    2021年9月22日
    70
  • CSS背景颜色渐变

    CSS背景颜色渐变CSS 背景颜色渐变

    2026年3月20日
    2
  • 嵌入式软件工程师待遇怎么样

    嵌入式软件工程师待遇怎么样本来大家选择嵌入式也就是冲着嵌入式的发展前景不错而来,所以在嵌入式这块还是有很多不知道的知识,这些也都要等着老师去给你讲解了,下面先来了解下嵌入式软件工程师待遇怎么样吧。嵌入式软件工程师待遇怎么样:1、应届毕业生如果你是在一线城市的话,有人带你,你自己有比较学的好,那么你的薪资待遇就可以达到6k+,但是不同公司不同待遇,而且不同地区不同的薪资待遇,就像北上广,这些地区薪资待遇是比其他地区高出2k以上,甚至更高的。就像人家阿里,那工资肯定就比其他公司要高的多。所以得看你要去什么地方发展了,但是平均

    2025年11月20日
    5
  • DNS负载均衡与负载均衡器两种方案的选择[通俗易懂]

    DNS负载均衡与负载均衡器两种方案的选择[通俗易懂]DNS负载均衡与负载均衡器两种方案的选择  web应用服务器集群系统,是由一群同时运行同一个web应用的服务器组成的集群系统,在外界看来,就像是一个服务器一样。为了均衡集群服务器的负载,达到优化系统性能的目的,集群服务器将众多的访问请求,分散到系统中的不同节点进行处理。从而实现了更高的有效性和稳定性,而这也正是基于Web的企业应用所必须具备的特性。    高可靠

    2022年7月14日
    20
  • 在python中安装包出现Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None))

    在python中安装包出现Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None))先向大家展示以下困扰了我好久的问题死活就是安装不上 总是说出错 其实就是说连接超时 下载不了安装包 我这里也没有科学上网的工具 经过多方百度 找到了办法通过几次 的使用 对于默认的 pip 源的速度实在无法忍受 于是便搜集了一些国内的 pip 源 如下 阿里云 http mirrors aliyun com pypi simple 中国科技大学 https pypi mirrors

    2026年3月20日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号