﻿ C exercises: Perform a binary search in an array - w3resource

# C Exercises: Perform a binary search in an array

## C Variable Type : Exercise-12 with Solution

Write a C program to perform a binary search in an array.

Sample Solution:

C Code:

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

int compare_integers (const void * x, const void * y)
{
return ( *(int*)x - *(int*)y );
}

int main ()
{
int * arrItem;
int findValue;
int my_array[100];
int n,i;
printf("\nInput the number of elements to be stored in the array :");
scanf("%d",&n);

printf("Input %d elements in the array :\n",n);
for(i=0;i<n;i++)
{
printf("element - %d : ",i+1);
scanf("%d",&my_array[i]);
}
printf (" Input a value to search : ");
scanf ("%d", &findValue);
arrItem = (int*) bsearch (&findValue,
my_array, n, sizeof (int), compare_integers);
if (arrItem != NULL)
printf ("%d is found in the array.\n\n",*arrItem);
else
printf ("%d is not found in the array.\n\n",findValue);
return 0;
}
```
```

Sample Output:

```Input the number of elements to be stored in the array :5
Input 5 elements in the array :
element - 1 : 10
element - 2 : 15
element - 3 : 20
element - 4 : 25
element - 5 : 30
Input a value to search : 20
20 is found in the array.
```

C Programming Code Editor:

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

int compare_integers (const void * x, const void * y)
{
return ( *(int*)x - *(int*)y );
}

/*Note that the array is already sorted!*/

int main ()
{
int * arrItem;
int findValue;
int my_array[100];
int n,i;
printf("\nInput the number of elements to be stored in the array :");
scanf("%d",&n);

printf("Input %d elements in the array :\n",n);
for(i=0;i<n;i++)
{
printf("element - %d : ",i+1);
scanf("%d",&my_array[i]);
}

printf (" Input a value to search : ");
scanf ("%d", &findValue);

arrItem = (int*) bsearch (&findValue,
my_array, n, sizeof (int), compare_integers);

if (arrItem != NULL)
printf ("%d is found in the array.\n\n",*arrItem);
else
printf ("%d is not found in the array.\n\n",findValue);
return 0;
}```

Improve this sample solution and post your code through Disqus