50、请编写函数fun, 函数的功能是: 删去一维数组中所有相同的数, 使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。 50、请编写函数fun, 函数的功能是: 删去一维数组中所有相同的数, 使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。 例如, 一维数组中的数据是: 2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10。删除后,数组中的内容应该是: 2 3 4 5 6 7 8 9 10。
时间: 2024-03-16 18:41:01 浏览: 23
C语言程序设计-编写函数fun将一个数组中的值按逆序存放,并在main()函数中输出;
4星 · 用户满意度95%
以下是函数fun的实现:
```c
int fun(int arr[], int n) {
int i, j;
j = 0; // j 记录不重复的数的位置
for (i = 1; i < n; i++) {
if (arr[i] != arr[j]) { // 如果当前数与前一个不同,则记录到新的位置
j++;
arr[j] = arr[i];
}
}
return j + 1; // 返回删除重复数后的数组长度
}
```
使用示例:
```c
int main() {
int arr[] = {2, 2, 2, 3, 4, 4, 5, 6, 6, 6, 6, 7, 7, 8, 9, 9, 10, 10, 10};
int len = sizeof(arr) / sizeof(arr[0]); // 数组长度
int newLen = fun(arr, len);
printf("删除重复数后的数组:");
for (int i = 0; i < newLen; i++) {
printf("%d ", arr[i]);
}
printf("\n数组长度为:%d\n", newLen);
return 0;
}
```
输出结果:
```
删除重复数后的数组:2 3 4 5 6 7 8 9 10
数组长度为:9
```
阅读全文