编辑代码

#include <stdio.h>
int erfenSearch(int arr[], int len1, int len2, int a) {
    while (len1 <= len2) {
        int mid = len1 + (len2 - len1) / 2;

        if (arr[mid] == a) return mid; // 找到居中的元素
        if (arr[mid] < a) len1 = mid + 1; // 在右半部分查找
        
        else len2 = mid - 1; // 在左半部分查找
    }
    return -1; // 没有找到元素
}

int main() {
    int arr[] = {3,6,9,12,14,19,27,35}; // 数组已经按升序排列
    int size = sizeof(arr) / sizeof(arr[0]);//得到元素的个数
    int a = 27;
    int result = erfenSearch(arr, 0, size - 1, a);
    if (result != -1)
        printf("元素 %d 存在于数组中,索引为 %d。\n", a, result);
    else
        printf("元素 %d 不存在于数组中。\n", a);
    return 0;
}