爱哭的秋刀鱼 2023-07-03 16:44 采纳率: 100%
浏览 21
已结题

C语言二分查找算法函数

C语言二分查找算法函数遇到问题

#include<stdlib.h>
#include<stdio.h>
#include<string.h>
void binarysear(int arr[],int a,int sz)
{
    int right=sz-1;
    int left=0;
    int mid=left+(right-left)/2;
     for(;left<=right;)
    {
        if(arr[mid]>a)
        right=mid-1;
        else if(arr[mid]<a)
        left=mid+1;
        else
        {
        printf("找到的目标,其下标为%d",mid);
        break;
        }
    }
    if(left>right)
    printf("未找到目标");
}
int main()
{
   int arr[]={1,2,3,4,5,6,7,8,9,10};
   int sz=sizeof(arr)/sizeof(arr[0]);
   
   binarysear(arr,2,sz);
    system("pause");
    return 0;
}

img


没有输出结果

  • 写回答

2条回答 默认 最新

  • threenewbee 2023-07-03 16:48
    关注
    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>
    
    void binarySearch(int arr[], int target, int sz) {
        int right = sz - 1;
        int left = 0;
        int mid;
    
        while (left <= right) {
            mid = left + (right - left) / 2;
            if (arr[mid] == target) {
                printf("找到的目标,其下标为%d", mid);
                return;
            } else if (arr[mid] < target) {
                left = mid + 1;
            } else {
                right = mid - 1;
            }
        }
        
        printf("未找到目标");
    }
    
    int main() {
        int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        int sz = sizeof(arr) / sizeof(arr[0]);
    
        binarySearch(arr, 2, sz);
    
        system("pause");
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 7月11日
  • 已采纳回答 7月3日
  • 创建了问题 7月3日

悬赏问题

  • ¥20 Keil uVision5创建project没反应
  • ¥15 mmseqs内存报错
  • ¥15 vika文档如何与obsidian同步
  • ¥15 华为手机相册里面的照片能够替换成自己想要的照片吗?
  • ¥15 陆空双模式无人机飞控设置
  • ¥15 sentaurus lithography
  • ¥100 求抖音ck号 或者提ck教程
  • ¥15 关于#linux#的问题:子进程1等待子进程A、B退出后退出(语言-c语言)
  • ¥20 web页面如何打开Outlook 365的全球离线通讯簿功能
  • ¥15 io.jsonwebtoken.security.Keys