C语言已知一个数组中的元素存在重复元素。编写程序删除重复元素((相同的多个元素只保留1个)
时间: 2024-09-07 12:04:24 浏览: 60
在C语言中,删除数组中的重复元素可以通过创建一个新的数组来存储已经遍历过的不同元素来实现。以下是一个简单的例子,演示如何实现这个功能:
```c
#include <stdio.h>
// 函数用于删除数组中的重复元素,并返回新数组的长度
int removeDuplicates(int arr[], int n) {
if (n == 0 || n == 1) {
return n;
}
int temp[n]; // 创建一个新的数组用于存储不重复的元素
int j = 0; // 新数组的索引
// 遍历原数组,将不重复的元素依次放到新数组中
for (int i = 0; i < n - 1; i++) {
if (arr[i] != arr[i + 1]) {
temp[j++] = arr[i];
}
}
temp[j++] = arr[n - 1]; // 将最后一个元素添加到新数组中
// 将新数组的元素复制回原数组
for (int i = 0; i < j; i++) {
arr[i] = temp[i];
}
return j; // 返回新数组的长度
}
int main() {
int arr[] = {1, 2, 2, 3, 4, 4, 4, 5, 5};
int n = sizeof(arr) / sizeof(arr[0]);
// 删除重复元素前打印原数组
printf("原数组: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
// 调用函数删除重复元素
n = removeDuplicates(arr, n);
// 打印删除重复元素后的数组
printf("删除重复元素后的数组: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
上述程序首先定义了一个`removeDuplicates`函数,用于删除数组中的重复元素,并返回新数组的长度。在`main`函数中,我们创建了一个包含重复元素的数组,并通过调用`removeDuplicates`函数来删除重复元素,最后打印出新数组的内容。
阅读全文