/ 科创班 /

记录详情

Accepted


  
# 状态 耗时 内存占用
#1 Accepted 1ms 256.0 KiB
#2 Accepted 1ms 256.0 KiB
#3 Accepted 1ms 256.0 KiB

代码

#include <stdio.h>
#define N 15
int main()
{
    int i,number,top,bott,mid,loca,a[N],flag=1,sign;
    for(i = 0; i < N; i++)
    {
        scanf("%d",&a[i]);
    }
    while(flag)
    {
        scanf("%d",&number);
        sign=0;
        top=0; //top是查找区间的起始位置
        bott=N-1; //bott是查找区间的最末位置
        if((number<a[0])||(number>a[N-1])) //要查的数不在查找区间内
            loca=-1; //表示找不到
        while((!sign)&&(top<=bott))
        {
            mid=(bott+top)/2;
            if(number==a[mid])
            {
                loca=mid;
                printf("%d\n",loca);
                sign=1;
            }
            else if(number<a[mid])
                bott=mid-1;
            else
                top=mid+1;
        }
        if(!sign||loca==-1)
            printf("-1\n");
        break;
    }
    return 0;
}

信息

递交者
类型
递交
题目
在有序数列中查找某一个数的位置
题目数据
下载
语言
C
递交时间
2018-07-15 22:33:56
评测时间
2018-07-15 22:33:56
评测机
分数
30
总耗时
5ms
峰值内存
256.0 KiB