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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

//
//  main.c
//  折半查找
//
//  Created by tl on 15/7/16.
//  Copyright (c) 2015年 itcast. All rights reserved.
//

#include <stdio.h>
/**
*  折半查找来咋找一个数
*
*  @param arr 数组
*  @param len 数组长度
*  @param key 查找的数
*
*  @return 要查找的数的位置,查不到返回-1
*/
int searchItem(int arr[],int len,int key){
    //定义变量
    int low=0,hig=len-1,mid;

    //循环
    while (low<=hig) {

        //计算mid的位置
        mid = (low+hig)/2;
        //判断key和a[mid]

        if (key>arr[mid]) {
            low = mid +1;
        }else if (key<arr[mid]){
            hig = mid-1;
        }else{
            printf("到这里啦!");
            return mid;
        }
    }
    //查找不到的情况
    return  -100;
}

int main(int argc, const char * argv[]) {
    // 定义一个数组
    int a[]={12,32,41,13,14,17,11,5,31,9};
    int loc = searchItem(a,10,5);
    printf("你要查找的数是第%d个",loc+1);
    return 0;
}


看了半天也不知道哪里出错了,mid值返回不了

1 个回复

正序浏览
还是自己发现了问题~~:D
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马