c语言怎么去重

在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 ,可以看到,原始数组中的重复元素已经被成功去除。

原创文章,作者:酷盾叔,如若转载,请注明出处:https://www.kdun.com/ask/380094.html

(0)
酷盾叔订阅
上一篇 2024-03-23 15:49
下一篇 2024-03-23 15:50

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购  >>点击进入