输入一个一维整形数组,删除其中重复出现的数,然后输出数组内容。 C语言
时间: 2024-12-19 12:28:40 浏览: 12
在C语言中,要实现删除一维整型数组中的重复元素并输出剩余元素,可以采用哈希表或者双指针的方法。这里我们提供一种简单直观的使用数组下标来完成任务的方法,不过这种方法的时间复杂度较高,因为需要O(n^2)的时间查找重复元素:
```c
#include <stdio.h>
#define SIZE 100 // 假设数组长度较小
void removeDuplicates(int arr[], int n) {
if (n == 0) return; // 如果数组为空,直接返回
// 遍历数组,假设每个位置都是唯一的
for (int i = 0; i < n - 1; i++) {
int j = i + 1;
while (j < n && arr[j] != arr[i]) { // 如果找到重复元素
arr[j] = arr[j + 1]; // 将下一个元素移到当前位置
j++; // 继续检查下一个元素
}
arr[j] = arr[i + 1]; // 把最后一个元素放到最后的位置
}
// 输出处理后的数组
for (int i = 0; i <= n; i++)
printf("%d ", arr[i]);
}
int main() {
int array[] = {1, 2, 2, 3, 4, 4, 5};
int size = sizeof(array) / sizeof(array[0]);
printf("Original array: ");
for (int i = 0; i < size; i++)
printf("%d ", array[i]);
removeDuplicates(array, size);
return 0;
}
```
当你运行这个程序,它会输出原数组去掉重复元素后的结果,如:
```
Original array: 1 2 2 3 4 4 5
1 2 3 4 5
```
注意,此方法只适用于数组大小已知的情况,并且不保证空间效率,因为它需要额外的空间来临时存储元素。如果需要更高效的方法,可以考虑使用动态数据结构,如链表或哈希表。
阅读全文