c++实现将数组中删除重复元素的函数,后⾯的空余元素变为-1
时间: 2023-06-08 16:05:51 浏览: 86
好的,您的问题是如何实现将数组中删除重复元素的函数,并将后面的空余元素变为-1。以下是一个示例函数的实现:
```c
#include <stdio.h>
void removeDuplicate(int arr[], int n) {
int i, j, k;
for (i = 0; i < n; i++) {
for (j = i + 1; j < n;) {
if (arr[j] == arr[i]) {
for (k = j; k < n - 1; k++) {
arr[k] = arr[k + 1];
}
n--;
} else {
j++;
}
}
}
for (i = n; i < sizeof(arr) / sizeof(int); i++) {
arr[i] = -1;
}
}
int main() {
int arr[] = {1, 2, 3, 2, 4, 3, 5, 3};
int i, n;
n = sizeof(arr) / sizeof(int);
printf("Original array: ");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
removeDuplicate(arr, n);
printf("\nArray after removing duplicates: ");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
这个函数会遍历整个数组,判断是否有重复元素。如果有,就将后面的元素向前移动一位,然后将数组长度减1。最后,将后面的空余元素设为-1。
阅读全文