0
点赞
收藏
分享

微信扫一扫

C语言习题:有序数组查找某具体数字n(折半查找)

何以至千里 2022-04-05 阅读 79
#include <stdio.h>

int main() {
    // insert code here...
    int arr[] = {1,2,3,4,5,6,7,8,9,10};
    //要查找的数字
    int k = 0;
    printf("请输入需要查找的数字:");
    scanf("%d", &k);
    //数组的元素个数
    int sz = sizeof(arr) / sizeof(arr[0]);
    int left = 0;
    int right = sz - 1;
    while (left <= right) {
        int mid = (left + right) / 2;
        if (arr[mid] < k)
            left = mid + 1;
        else if(arr[mid] > k)
            right = mid - 1;
        else{
            printf("找到了“%d”,在数组的%d号位置\n", arr[mid], mid);
            break;
        }
    }
    if (left > right) {
        printf("找不到了\n");
    }
    return 0;
}

 

 

举报

相关推荐

C语言 折半查找

0 条评论