c语言,请编写函数fun,该函数功能是,删除一堆数组中所有相同的数,使之只剩下一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。例如:若一堆数组中的数据是2223445666677899101010,数组中的内容应该是,2345678910。
时间: 2024-02-21 17:59:13 浏览: 15
函数指针-C语言__指针数组与指针的指针
下面是一个实现该功能的 C 语言函数 `fun` 的示例代码:
```c
int fun(int a[], int n) {
int i, j;
// 将相同的数依次放到数组末尾,并记录新的数组长度
for (i = 0, j = 1; j < n; j++) {
if (a[i] != a[j]) {
a[++i] = a[j];
}
}
// 返回新的数组长度
return i + 1;
}
```
在上面的代码中,使用了双指针法来处理相同的数。首先将第一个数作为起点,然后将第二个数依次与起点比较,如果不相同,则将其放到起点之后的位置。然后将起点后移一位,继续比较下一个数。最后返回新的数组长度即可。
需要注意的是,这里假设输入的数组已经按照从小到大的顺序排列。如果没有排列好,需要先将数组排序后再调用该函数。
阅读全文