C语言对数组的操作(删除特定元素)

因为C语言数组的连续性,导致其对元素的增添比较不方便。

如何删除一个元素?

idea: 使用for循环将后一个元素值赋给前一元素,以达到覆盖效果。但最后一位数将重复两次。可以考虑对length进行操作达到控制输出的目的。

tips: 有时候剩下的多余数字位能够留下位置方便我们添加自己的元素。

core codes:

//给定数字num,在数组a[]里面找到比num小的数据并删除它们。
scanf("%f", &num);
for(int j = 0; j < size; j++) {
	if( a[j] < num ) {
		size = size - 1;    //将代表数组大小的变量size缩小1
		for(x = j; x < size; x++) {    //进行向前覆盖操作
			a[x] = a [x + 1];
		}
		j--;    //这一步十分重要!因为向前覆盖之后,现在的j位已经是后面一位数了。
	}            //所以在进行下次循环之前需要将j回退一位重新判断!
}

 

posted @ 2022-04-07 19:33  CanisAlpha  阅读(1414)  评论(0编辑  收藏  举报