2つの異なる配列から数値を取得するときに、重複する数値が新しい配列に格納されないようにする方法を知る必要があります。この関数は、各「一意の」値を1回保存し、重複する値を再度保存しないようになっています。
これまでの私の関数コードは次のとおりです。
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;
}
必要な値が出力されますが、新しい動的配列の内容を出力するときに同じ番号が複数回表示されないようにしたいと思います。
重複を防ぐためにコードを改善する方法について何かアイデアはありますか?