A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© mr.late 中级黑马   /  2015-11-26 20:05  /  709 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 mr.late 于 2015-11-26 20:35 编辑

#include<stdio.h>
int searchNum(int arr[],int len,int key){
        int low=0,high=len-1,mid=(low+high)/2;
        while(arr[mid]!=key){
                if(key>arr[mid]){
                        low=mid+1;
                        mid=(low+high)/2;
                }else if(key<arr[mid]){
                        high=mid-1;
                        mid=(low+high)/2;
                }
                if(low>high){
                        return low;
                }
        }
        return mid;
}
int main(){
        int key,num;
        printf("这是一个长度为10的一维数组,元素类型是int型\n");
        int arrSearchNum[10];
        printf("请按从小到大顺序定义数组的元素\n");
        for(int i=0;i<10;i++){
                printf("请定义第%d个元素的大小\n",i+1);
                scanf("%d",&arrSearchNum);
        }
        printf("请输入一个数,查找此数在本数组中本应所在的位置\n");
        scanf("%d",&key);
        num=searchNum(arrSearchNum,10,key);
        printf("%d应插入在数组中的第%d位\n",key,num+1);
        return 0;
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马