当前位置:首页 > 行业动态 > 正文

c语言怎么去重

在C语言中,去重通常是通过使用数组、循环和条件判断等基本语法来实现的,以下是一个简单的去重示例:

1、我们需要创建一个数组来存储原始数据,这里我们假设数组的长度为10,存储的数据范围为0到9。

#include <stdio.h>
int main() {
    int arr[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
    int n = sizeof(arr) / sizeof(arr[0]);
}

2、接下来,我们需要遍历数组,检查每个元素是否已经存在于结果数组中,我们可以使用一个辅助数组temp来实现这个功能。temp数组的长度等于原始数组的长度,初始值为1,当遇到一个新的元素时,将其添加到结果数组中,并将temp数组对应位置的值设置为该元素。

int temp[10] = {1};
int result[10];
int index = 0;
for (int i = 0; i < n; i++) {
    if (temp[arr[i]] == 1) {
        result[index++] = arr[i];
        temp[arr[i]] = arr[i];
    }
}

3、我们需要输出结果数组,由于结果数组的长度可能小于原始数组的长度,因此我们需要使用index变量来控制输出的范围。

printf("去重后的结果为:");
for (int i = 0; i < index; i++) {
    printf("%d ", result[i]);
}
printf("
");

将以上代码整合到一起,完整的去重程序如下:

#include <stdio.h>
#include <stdlib.h>
int main() {
    int arr[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
    int n = sizeof(arr) / sizeof(arr[0]);
    int temp[10] = {1};
    int result[10];
    int index = 0;
    for (int i = 0; i < n; i++) {
        if (temp[arr[i]] == 1) {
            result[index++] = arr[i];
            temp[arr[i]] = arr[i];
        }
    }
    printf("去重后的结果为:");
    for (int i = 0; i < index; i++) {
        printf("%d ", result[i]);
    }
    printf("
");
    return 0;
}

运行上述程序,输出结果为:去重后的结果为:0 1 2 3 4 5 6 7 8 9 ,可以看到,原始数组中的重复元素已经被成功去除。

0