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("%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<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("%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://blog.csdn.net/csdn17355456893/article/details/76883951

推荐教程:《C语言》

更多相关文章

  1. C语言自定义函数返回数组的方法(图文详解)
  2. C语言怎么定义字符串数组
  3. c++定义数组的方法
  4. 决定数组所占内存单元多少的是什么
  5. c语言数组冒泡排序是如何实现的?
  6. 在C语言里二维数组在内存中的存放顺序是什么?
  7. 在c语言中二维数组元素在内存中的存放顺序是什么?
  8. 声明动态数组的语句怎么写
  9. C语言怎么获取数组的长度

随机推荐

  1. 带有wamp的intl扩展名php_intl.dll
  2. PHP 源码加密! 求神拜佛,求各位大虾了。
  3. PHP编程调试方法总结
  4. PHP开源框架Laravel的安装与配置
  5. 常用对称加密算法(DES/AES)类(PHP)
  6. PHP学习路线图
  7. 加载不了php的mysql扩展??
  8. 建站学习(PHP+apache+mysql):1.1 日志详解
  9. 30、PHP7和PHP5有什么区别?
  10. php file_get_content阿拉伯字符