1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
void query_and(long first_query[MAX_RESULT], long second_query[MAX_RESULT], long result_query[MAX_RESULT])
{
int i = 0;
int ind = 0;
int size1 = sizeof(first_query);
int size21 = sizeof(second_query);
//tri les deux tableaux
qsort(first_query, sizeof(first_query), sizeof(long), (long (*) (const void*, const void*)) compare_long);
qsort(second_query, sizeof(second_query), sizeof(long), (long (*) (const void*, const void*)) compare_long);
//recherche les valeurs identiques dans les deux tableaux
while(i<sizeof(first_query))
{
long* long_ptr = bsearch(second_query, first_query[i], sizeof(second_query), sizeof(long),
(long (*) (const void *, const void *)) compare_long);
if(*long_ptr)
{
result_query[ind] = first_query[i];
ind++;
}
i++;
}
}
int compare_long(long* a, long* b)
{
return(*a - *b);
} |
Partager