C语言实现删除数组中某个元素


本文摘自PHP中文网,作者烟雨青岚,侵删。

C语言实现删除数组中某个元素

大家知道C语言实现删除数组中某个元素方法吗?下面将讲述在C语言中实现删除数组中某个元素的两种方法,大家一起看看吧。

方法1:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

/*

 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:记录下标

阅读剩余部分

相关阅读 >>

C语言的标识符允许使用关键字吗?

C语言函数声明格式

C语言fun函数有什么作用

C语言中char型数据在内存中的存储形式是什么?

C语言程序中的基本功能模块为什么?

C语言怎么换行

C语言中整除符号怎么表示?

C语言的认识和想法是什么

带你了解C语言中的sleep函数(附代码)

C语言需要学到什么程度?

更多相关阅读请进入《C语言》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...