c语言删除int数组中重复的数字
时间: 2024-12-17 13:42:42 浏览: 10
在C语言中,删除整数数组中的重复元素通常涉及到遍历数组、存储非重复值并调整数组大小。以下是一个简单的示例,使用了额外的空间来实现这一过程:
```c
#include <stdio.h>
void removeDuplicates(int arr[], int n) {
if (n == 0 || n == 1) return; // 如果数组为空或只包含一个元素,无需处理
int temp[n], index = 0;
for (int i = 0; i < n; i++) {
int j;
for (j = 0; j < index; j++)
if (arr[i] == temp[j]) break; // 如果当前元素等于已存储元素,则跳过
// 如果没找到重复,将当前元素复制到临时数组
if (j == index)
temp[index++] = arr[i];
}
// 调整原数组长度
arr[0] = index;
}
// 测试函数
int main() {
int arr[] = {1, 2, 3, 4, 5, 2, 6, 7, 3};
int n = sizeof(arr) / sizeof(arr[0]);
printf("Original array:\n");
for (int i = 0; i < n; i++)
printf("%d ", arr[i]);
removeDuplicates(arr, n);
printf("\nArray after removing duplicates:\n");
for (int i = 0; i < arr[0]; i++)
printf("%d ", arr[i]);
return 0;
}
```
这个程序首先创建了一个临时数组`temp`,然后遍历输入数组`arr`。如果发现一个新元素不在临时数组中,就将其添加到临时数组`temp`并将索引`index`递增。最后,`arr[0]`更新为`index`,表示新数组的长度。
运行此程序,将会得到去重后的数组。
阅读全文