5.3用指针编写函数int deleteelement(int*a,int n,int x)将一维数组中的n个元素中出现的x都删除,返回删除后数组的元素个数,如{1,2,5,3,4,5,6}中删除5后得{1,2,3,4,6,0,0},返回5
时间: 2024-05-14 13:17:25 浏览: 46
从数组中删除一个元素
4星 · 用户满意度95%
下面是用指针编写的函数int deleteelement(int*a,int n,int x)的代码实现:
```c
int deleteelement(int *a, int n, int x) {
int count = 0; // 记录删除元素的个数
for (int i = 0; i < n; i++) {
if (*(a + i) == x) { // 如果当前元素等于待删除元素
count++; // 删除元素个数加1
for (int j = i; j < n - 1; j++) {
*(a + j) = *(a + j + 1); // 将后面的元素前移一位
}
i--; // 因为删除了一个元素,所以i要减1
n--; // 数组元素个数减1
}
}
// 将删除元素后面的元素都置为0
for (int i = n; i < n + count; i++) {
*(a + i) = 0;
}
return n;
}
```
函数的参数解释如下:
- `a`:一维数组的首地址
- `n`:一维数组的元素个数
- `x`:待删除的元素
函数先遍历整个一维数组,将所有等于待删除元素的元素删除,并记录删除元素的个数。删除元素的方法是将后面的元素前移一位,然后将数组元素个数减1。最后,将删除元素后面的元素都置为0,然后返回数组元素个数。
阅读全文