结合两个测试用例给出完整的c语言代码

【题目内容】
使用自定义函数,利用折半查找实现在一个有序数组中查找特定元素的下标数。
【输入形式】
一个有序数组和待查找元素值
【输出形式】
待查找元素的下标数
【测试用例1】
输入:
1 2 3 4 5 5
输出:
4
【测试用例2】
输入:
2 5 6 7 8 5
输出:
1

1 2 3 4 5 5 ?
意思是最后一个输入的是特定元素?
另外也没有明确有序是递增还是递减,所以需要进行判断

#include <stdio.h>
int main()
{
    int a[1000],n=0,m;
    int left,right,mid,up = 0;
    do
    {
        scanf("%d",&a[n]);
        n++;
    }while(getchar() != '\n');
    if(n<3)
    {
        printf("输入数据不足");
        return 0;
    }
    if(a[0] < a[1])
        up = 1;
    m = a[n-1];
    n--;
    left = 0;
    right = n-1;
    while(left <= right)
    {
        mid = (left+right)/2;
        if(a[mid] == m)
            break;
        else if(a[mid] < m)
        {
            if(up == 1)
                left = mid+1;
            else
                right = mid-1;
        }
        else
        {
            if(up == 1)
                right = mid-1;
            else
                left = mid+1;
        }
    }
    if(left > right)
        printf("查无次数");
    else
        printf("%d",mid);
    return 0;
}

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