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