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

int less_int(const void* left, const void* right) {
    return *((const int*)left) - *((const int*)right);
}

int main(void) {
    size_t num_elements = 500;
    int* a = malloc(num_elements*sizeof(int));
    for(size_t i=0 ; i<num_elements ; i++) {
        a[i] = rand() % num_elements;
    }
    qsort(a, num_elements, sizeof(int), less_int);
    size_t num_rand = 100;
    int* r = malloc(num_rand*sizeof(int));
    for(size_t i=0 ; i < num_rand ; i++) {
        r[i] = rand() % num_rand;
    }

    for (size_t i = 0 ; i != num_rand ; i++) {
        int *p = (int*) bsearch (&r[i], a, num_elements, sizeof(int), less_int);
        if (p) {
            printf ("%d is in the array.\n", *p);
        } else {
            printf ("%d is not in the array.\n", r[i]);
        }
    }

    free(a);
    free(r);
    return 0;
}
