"填空题:编写函数删除一维数组中相同数,只留一个,返回删除后数组长度"

版权申诉
0 下载量 100 浏览量 更新于2024-04-19 收藏 1.04MB DOC 举报
函数的代码实现如下: ```c int fun(int *arr, int n) { if (n == 0) { return 0; } int index = 0; for (int i = 1; i < n; i++) { if (arr[i] != arr[index]) { arr[++index] = arr[i]; } } return index + 1; } ``` 在主函数中调用该函数来实现题目要求的功能: ```c #include <stdio.h> int fun(int *arr, int n); int main() { int arr[20] = {1, 1, 1, 2, 2, 2, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 9, 9, 10, 10}; int n = 20; printf("删除前数组中的数据:"); for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } int new_n = fun(arr, n); printf("\n删除后数组中的数据:"); for (int i = 0; i < new_n; i++) { printf("%d ", arr[i]); } printf("\n删除后数组中数据个数:%d\n", new_n); return 0; } ``` 运行后的输出为: ``` 删除前数组中的数据:1 1 1 2 2 2 3 4 4 5 5 6 6 7 7 8 9 9 10 10 删除后数组中的数据:1 2 3 4 5 6 7 8 9 10 删除后数组中数据个数:10 ``` 函数 `fun()` 的功能达到了题目要求,成功删除了一维数组中所有相同的数,使之只剩一个,并返回删除后数组中数据的个数。