c语言删除数组中重复元素
夏志豪 2023-09-25编程经验
前言在C语言中,如果需要删除数组中的重复元素,我们可以使用一些遍历和比较的方法来实现。本文将介绍一种基于二重循环的解决方案,该方案适用于很大程度上保持原有顺序的情况
前言
在C语言中,如果需要删除数组中的重复元素,我们可以使用一些遍历和比较的方法来实现。本文将介绍一种基于二重循环的解决方案,该方案适用于很大程度上保持原有顺序的情况。
代码实现
#include#define MAX_SIZE 100 void remove_duplicates(int arr[], int size) { int i, j, k; // 遍历数组中的每个元素 for (i = 0; i < size; i++) { // 遍历后面的元素 for (j = i + 1; j < size; j++) { // 如果找到相同的元素 if (arr[i] == arr[j]) { // 删除重复元素 for (k = j; k < size - 1; k++) { arr[k] = arr[k + 1]; } size--; // 更新数组大小 j--; // 更新内层循环索引以检查新元素 } } } } int main() { int arr[MAX_SIZE]; int size, i; printf("请输入数组的大小:"); scanf("%d", &size); printf("请输入数组的元素:\n"); for (i = 0; i < size; i++) { scanf("%d", &arr[i]); } remove_duplicates(arr, size); printf("删除重复元素后的数组为:\n"); for (i = 0; i < size; i++) { printf("%d ", arr[i]); } return 0; }
代码解释
上述代码中,我们首先定义了一个常量`MAX_SIZE`来表示数组的最大大小。
在`remove_duplicates`函数中,我们使用两重循环遍历数组中的每个元素。内层循环从外层循环当前元素的下一个元素开始遍历。
如果找到重复的元素,我们就通过移动数组元素的方式删除它。具体而言,我们将后面的元素依次前移一位,数组的大小也随之减小。需要注意,这里我们使用了`j--`来更新内层循环的索引,以便检查新元素。
最后,我们在`main`函数中读取用户输入的数组,调用`remove_duplicates`函数删除重复元素,并打印结果数组。
总结
通过上述代码,我们可以删除C语言数组中的重复元素。这种方法可以在很大程度上保持原有顺序。然而,由于需要遍历和移动数组元素,在处理大型数组时可能会导致性能下降。因此,在实际应用中,我们需要根据实际情况选择更高效的算法。
很赞哦! ()