编辑代码

#include <stdio.h>

int binarySearch(int arr[], int n, int x)
{
    int left = 0;
    int right = n - 1;
    while (left <= right)
    {
        int mid = left + (right - left) / 2;
        if (arr[mid] == x)
            return mid;

        if (arr[mid] < x)
            left = mid + 1;
        else
            right = mid - 1;
    }
    return -1;
}

int main()
{
    int arr[] = {2, 3, 4, 10, 40};
    int n = sizeof(arr) / sizeof(arr[0]);
    int x = 10;
    int result = binarySearch(arr, n, x);
    if (result == -1)
        printf("元素不在数组arr中\n");
    else
        printf("元素在arr数组所在下标为 %d\n", result);
    
    printf("==============\n");
    int arr1[] = {2, 7, 15, 30, 40, 45,};
    int n1 = sizeof(arr1) / sizeof(arr1[0]);
    int x1 = 38;
    int result1 = binarySearch(arr1, n1, x1);
    if (result1 == -1)
        printf("元素不在数组arr1中\n");
    else
        printf("元素在arr1数组所在下标为 %d\n", result1);
    return 0;
}