华为OD 小明找位置 C语言实现

cpp 复制代码
int main(void)
{
    int i = 0;
    int len = 0;
    char c = '\0';
    int data[100];
    int left = 0;
    int right = 0;
    int middle = 0;
    int tag = 0;
    int index = 0;

    while(scanf("%d",&data[i]) == 1)
    {
        i++;
        len++;

        c = getchar();
        if(c == '\n')
            break;
    }

    scanf("%d",&tag);

//    for(i=0; i<len; i++)
//    {
//        printf("%d ",data[i]);
//    }
// printf("%d \n",tag);

    right = len-1;
    middle = (left+right)/2;

    while(left<right)
    {
        if(data[middle]>tag)
        {
            right = middle-1;
        }
        else
        {
            left = middle+1;
        }

        if(left == right)
        {
            index = left+2;
            break;
        }
        middle  = (left+right)/2;

    }

    printf("%d",index);
}
相关推荐
Jess07几秒前
插入排序的简单介绍
数据结构·算法·排序算法
老一岁2 分钟前
选择排序算法详解
数据结构·算法·排序算法
xindafu9 分钟前
代码随想录算法训练营第四十二天|动态规划part9
算法·动态规划
xindafu16 分钟前
代码随想录算法训练营第四十五天|动态规划part12
算法·动态规划
望获linux33 分钟前
【实时Linux实战系列】CPU 隔离与屏蔽技术
java·linux·运维·服务器·操作系统·开源软件·嵌入式软件
JosieBook36 分钟前
【Java编程动手学】使用IDEA创建第一个HelloJava程序
java·开发语言·intellij-idea
Thomas_YXQ37 分钟前
Unity3D DOTS场景流式加载技术
java·开发语言·unity
summer夏12343 分钟前
2025.07 做什么
java·android studio
钢铁男儿1 小时前
C# 委托(调用带引用参数的委托)
java·mysql·c#
freexyn1 小时前
Matlab自学笔记六十一:快速上手解方程
数据结构·笔记·matlab