当从两个不同的数组中获取数字时,我需要知道一种防止重复数字存储在新数组中的方法。该函数应该存储每个“唯一”值一次,而不是再次存储重复值。
到目前为止,这是我的功能代码:
int * arrayIntersect(int *sizeOfResult, const int *a, const int *b, int sizeOfA, int sizeOfB){
int i;
int j;
int k = 0;
int c[(sizeOfA + sizeOfB)];
for(j = 0; j < sizeOfB; j++){
for(i = 0; i < sizeOfA; i++){
if(a[i] == b[j]){
c[k] = a[i];
(*sizeOfResult)++;
k++;
}
}
}
int *d = (int *)malloc(sizeof(int) * *sizeOfResult);
for(i = 0; i < *sizeOfResult; i++){
d[i] = c[i];
}
return d;
}
它打印我需要的值,但我想在打印新动态数组的内容时消除多次显示的相同数字。
关于如何改进我的代码以防止重复的任何想法?