# Binary search program returning undesired values

1

I wrote a program for binary search but it is not working properly. I also wrote code to sort the array, which is working, but when I accept the element to be searched, the program stops working and returns undesired values. It is showing `Process returned -1073741819 (0xC0000005)` each time I run the program. Here's my code

``````#include <iostream>
using namespace std;

int main() {
int arr, n, i, j, temp;

cout << "Enter number of elements: ";
cin >> n;

for (i = 0; i < n; i++) {
cout << "Enter element " << i + 1 << ": ";
cin >> arr[i];
}

cout << "\nThe sorted array is: \n";

for (i = 0; i < n; i++) {
for (j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}

for (i = 0; i < n; i++) {
cout << arr[i] << " ";
}

int last, beg, mid, se, flag = 0;

cout << "\n.\nEnter the element to be searched: ";
cin >> se;

last = n - 1;
beg = 0;

while (beg <= last) {
mid = (last + mid) / 2;

if (se > arr[mid])
beg = mid + 1;

else if (se < arr[mid])
last = mid - 1;

else {
cout << se << " found at position " << mid + 1;
flag = 1;
break;
}
}

if (flag == 0) cout << "No such thing exists...";

return 0;
}
``````
c++
codeblocks
binary-search

``````mid = (last + mid)/2;
You want `mid` to be assigned the value that is equidistant to both `last` and `beg`. Resolve this `bug` in your code and it should work.