代码改变世界

去掉数组中重复的元素。

  钟铧若岩  阅读(6)  评论(0编辑  收藏  举报
复制代码
#include <stdio.h>
#include <stdlib.h>

// 函数用于移除数组中的重复元素并返回新数组的大小
int removeDuplicates(int* arr, int size, int** newArray) {
    if (size <= 0) return 0;

    // 动态分配内存给新的数组
    *newArray = (int*)malloc(size * sizeof(int));
    if (*newArray == NULL) {
        printf("Memory allocation failed\n");
        exit(1);
    }

    int newSize = 0;
    for (int i = 0; i < size; i++) {
        int isDuplicate = 0;
        // 检查当前元素是否已经在新数组中存在
        for (int j = 0; j < newSize; j++) {
            if ((*newArray)[j] == arr[i]) {
                isDuplicate = 1;
                break;
            }
        }
        if (!isDuplicate) {
            (*newArray)[newSize++] = arr[i];
        }
    }
    return newSize;
}

int main() {
    int array[] = {1, 2, 3, 2, 4, 5, 3, 6, 1};
    int size = sizeof(array) / sizeof(array[0]);
    
    int* newArray;
    int newSize = removeDuplicates(array, size, &newArray);

    // 输出去重后的数组
    printf("Array after removing duplicates: ");
    for (int i = 0; i < newSize; i++) {
        printf("%d ", newArray[i]);
    }
    printf("\n");

    // 释放动态分配的内存
    free(newArray);

    return 0;
}
复制代码

 

相关博文:
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示