华为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);
}
相关推荐
燕-孑11 小时前
tomcat详解(基础到高级生产)
java·tomcat
码不停蹄的玄黓11 小时前
Spring Bean 生命周期
java·后端·spring
西安邮电大学11 小时前
分治算法详细讲解
java·后端·其他·算法·面试
code bean11 小时前
平衡相关性与多样性:推荐系统中的永恒博弈与 MMR 算法详解
算法
摇滚侠11 小时前
Mybatis 入门到项目实战 搭建 MyBatis 框架 01-14
java·tomcat·mybatis
青梅橘子皮11 小时前
Linux---进程控制(2)(进程程序替换)
linux·c++·算法
Shan120511 小时前
经典问题——验证栈序列
数据结构·算法
2501_9065651212 小时前
勾股定理证明
算法
码不停蹄的玄黓12 小时前
SpringBoot 全局异常处理器实现
java·spring boot·后端
Shan120512 小时前
无向图的Hierholzer算法流程(二)
算法