将未排序的C数组复制到另一个数组中,避免重复

问题描述 投票:0回答:1

大家好,感谢您的宝贵时间。

[为了练习,我想编写一个程序,将所有元素从一个数组复制到另一个数组,但不重复。唯一的条件是我无法更改原始数组-因此无法排序。

我尝试制作一个函数,该函数检查在复制到(array2)的数组中是否找到array1的当前元素。如果否,则将元素复制到第二个数组,然后将大小增加一]。

但是,它不起作用:

如果有

int array1[15] = {3,2,4,7,9,1,4,6,7,0,1,2,3,4,5};
int array2[15];

array2应包含以下数字:3,2,4,7,9,1,6,0,5

但是我的输出如下:3,2,4,7,9,1,6

这里是代码:

#include <stdio.h>
#include <stdlib.h>

int already_exists(int array2[], int size_arr2, int element)
{

    int i;

    for(i=0; i<size_arr2; i++)
    {
        if(array2[i] == element)
            return 1;
    }
    return 0;
}

int main()
{
    int array1[15] = {3,2,4,7,9,1,4,6,7,0,1,2,3,4,5};
    int array2[15];
    int i;
    int size_arr2=0;

    for(i=0; i<9; i++)
    {
        int element = array1[i];

        if(already_exists(array2, size_arr2, element) == 1)
            continue;
        else
        {
            array2[size_arr2] = element;
            size_arr2++;
        }
    }

    for(i=0; i<size_arr2; i++)
    {
        printf("%d, ", array2[i]);
    }
    return 0;
}

大家好,感谢您的宝贵时间。为了进行练习,我想编写一个程序,将所有元素从一个数组复制到另一个数组,但不重复。唯一的条件是我...

c arrays
1个回答
1
投票

您在for循环中有错字

© www.soinside.com 2019 - 2024. All rights reserved.