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回退一位重新判断!
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM