这道二分查找能否用只用c语言写出来?

7-1 二分查找
分数 20
作者 陈晓梅
单位 广东外语外贸大学
输入n值(1<=n<=1000)、n个非降序排列的整数以及要查找的数x,使用二分查找算法查找x,输出x所在的下标(0~n-1)及比较次数。若x不存在,输出-1和比较次数。

输入格式:
输入共三行:
第一行是n值;
第二行是n个整数;
第三行是x值。

输出格式:
输出x所在的下标(0~n-1)及比较次数。若x不存在,输出-1和比较次数。

输入样例:
4
1 2 3 4
1
输出样例:
0
2
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
C (gcc)
1

二分法没问题啊

#include <stdio.h>
int main()
{
    int n,i,x,left,right,mid,count=0;
    int a[1000];
    scanf("%d",&n);
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);
    scanf("%d",&x);
    left = 0;
    right = n-1;
    while(left <= right)
    {
        count++;
        mid = (left + right)/2;
        if(a[mid] == x)
            break;
        else if(a[mid] > x)
            right = mid - 1;
        else
            left = mid + 1;
    }
    if(left > right)
    {
        printf("-1\n");
        printf("%d",count);
    }
    else
    {
        printf("%d\n",mid);
        printf("%d",count);
    }
    return 0;
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632