大家好,感谢您的宝贵时间。
[为了练习,我想编写一个程序,将所有元素从一个数组复制到另一个数组,但不重复。唯一的条件是我无法更改原始数组-因此无法排序。
我尝试制作一个函数,该函数检查在复制到(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;
}
大家好,感谢您的宝贵时间。为了进行练习,我想编写一个程序,将所有元素从一个数组复制到另一个数组,但不重复。唯一的条件是我...
您在for循环中有错字