
Patrick B. answered 11/21/20
Math and computer tutor/teacher
using namespace std;
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int CompareInt( const void * rec1, const void * rec2)
{
int * ptr1 = (int*)rec1;
int * ptr2 = (int*)rec2;
int iNum1 = *ptr1;
int iNum2 = *ptr2;
return(iNum1-iNum2);
}
int main()
{
int A[]={2,4,6,8,12,16,18,19,20,21,22,23,24,25,27,31,32,33,36,39,42,45,48,52,56,59,62,64,65,69,71,75,77};
int iTargetNum=48;
void * ptrResult = bsearch( (void * ) &iTargetNum,A,33,sizeof(int),CompareInt);
if (ptrResult!=NULL)
{
int offsetAddr = ((int*)ptrResult - A); //returns the array index
cout << * ((int *)ptrResult) << " found at offset " << offsetAddr << endl;
}
else
{
cout << "not found" << endl;
}
}