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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhuhoulin 中级黑马   /  2015-8-1 13:53  /  786 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

#include<stdio.h>

int zheban(int *num,int low,int heigh,int number){
        int mid;

        if((heigh-low) > 1){
                mid = (low+heigh)/2;
                if(number == num[mid]){
                        return mid;
                }
                else if(number > num[mid]){
                        zheban(num,mid+1,heigh,number);
                }
                else{
                        zheban(num,low,mid-1,number);
                }
        }
        else if((heigh-low) == 1){
                if(number == num[low]){
                        return low;
                }
                else if(number == num[heigh]){
                        return heigh;
                }
                else{
                        return -1;
                }
        }
        else{
                return low;

        }
}


int main(){
        int num[10] = {1,3,5,8,10,23,56,57,58,61};
        int i;
        int number;
        int k;

        scanf("%d",&number);
        for(i = 0;i < 10;i++){
                printf("%d ",num[i]);
        }
        printf("\n");
        k = zheban(num,0,10,number);
        if(k == -1){
                printf("该数字不存在\n");
        }
        else{
                printf("%d\n",k);
        }

        return 0;

}

1 个回复

倒序浏览
谢谢楼主分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马