IP-19.c (2567B)
1 /* 2 * Author : Amit Dutta <amitdutta4255@gmail.com> 3 * Date : 03 Jan 2026 4 * Repo : https://github.com/notamitgamer/bsc 5 * License : MIT License (See the LICENSE file for details) 6 */ 7 8 /* Write a C program that includes a user-defined function named binarySearch with the 9 signature int binarySearch(int arr[], int size, int target);. The function should perform a 10 binary search on a sorted array of integers and return the index of the target element if 11 found, and -1 otherwise. */ 12 13 #include <stdio.h> 14 15 int inputArray(int[], int); 16 // void sortArray(int[], int); 17 int binarySearch(int[], int, int); 18 19 int main() 20 { 21 int size; 22 printf("How many element do you want to enter: "); 23 scanf("%d", &size); 24 int arr[size]; 25 int target = inputArray(arr, size); 26 // sortArray(arr, size); // If needed 27 int index = binarySearch(arr, size, target); 28 if (index != -1) 29 { 30 printf("\nElement %d is found at index %d.", target, index); 31 } 32 else 33 { 34 printf("\nElement %d is not found.", target); 35 } 36 return 0; 37 } 38 39 int inputArray(int arr[], int size) 40 { 41 int i, target; 42 for (i = 0; i < size; i++) 43 { 44 printf("Enter element for position %d: ", i); 45 scanf("%d", &arr[i]); 46 } 47 printf("\nEnter the target element: "); 48 scanf("%d", &target); 49 return target; 50 } 51 52 /* void sortArray(int arr[], int size) 53 { 54 // using Bubble Sort... 55 56 int tempArr[size], i, j, temp; 57 printf("\nBefore Sorting:\n["); 58 for (i = 0; i < size; i++) 59 { 60 printf("%d", arr[i]); 61 if (i != size - 1) 62 { 63 printf(", "); 64 } 65 } 66 printf("]\n"); 67 for (i = 0; i < size - 1; i++) 68 { 69 for (j = 0; j < size - i - 1; j++) 70 { 71 if (arr[j] > arr[j + 1]) 72 { 73 temp = arr[j]; 74 arr[j] = arr[j + 1]; 75 arr[j + 1] = temp; 76 } 77 } 78 } 79 printf("\nAfter Sorting:\n["); 80 for (i = 0; i < size; i++) 81 { 82 printf("%d", arr[i]); 83 if (i != size - 1) 84 { 85 printf(", "); 86 } 87 } 88 printf("]\n"); 89 } 90 */ 91 92 int binarySearch(int arr[], int size, int target) 93 { 94 int low = 0; 95 int high = size - 1; 96 int mid; 97 while (low <= high) 98 { 99 mid = low + ((high - low) / 2); 100 if (arr[mid] == target) 101 { 102 return mid; 103 } 104 else if (arr[mid] > target) 105 { 106 high = mid - 1; 107 } 108 else if (arr[mid] < target) 109 { 110 low = mid + 1; 111 } 112 } 113 return -1; 114 }