这个程序不懂哪里出错了
涵涵¢ 铁杆会员 2017-08-06 23:06:28
2202 2 0

#include<stdio.h>

int find(int x[],int t)

{

int left=0,mid,right=14;

while(left<=right)

{

mid=(left+right)/2;

if(t==x[mid])

{

return mid;

}

else

{

if(t>x[mid])

{

left=mid+1;

}

else

{

right=mid-1;

}

}

return -1;

}

main()

{

int a[15]=

{3,7,12,19,21,24,26,33,39,41,45,50,52,64,68};

printf("%d\n",find(a,52));

}

}


问题来自: 二分查找

共 2 个回答

    qqq 资深元老 助教 2475天前

    可能是你大括号写太多了。。

    return -1 应该写在while循环外面,main函数应该写在fun函数外面,你仔细看看自己写的是个啥。

    这是我改过的,不会改就看看吧。

    #include<stdio.h>


    int find(int x[],int t)


    {


    int left=0,mid,right=14;


    while(left<=right)


    {


    mid=(left+right)/2;


    if(t==x[mid])


    {


    return mid;


    }


    else


    {


    if(t>x[mid])


    {


    left=mid+1;


    }


    else


    {


    right=mid-1;


    }

    }

    }

    return -1;

    }


    main()

    {


    int a[15]={3,7,12,19,21,24,26,33,39,41,45,50,52,64,68};


    printf("%d\n",find(a,52));


    }


    涵涵¢ 铁杆会员 2475天前

    回复 qqq:好的,谢谢啊


您还没有登录,所以不能回复该问题
我要回复

  • 0

    点赞

  • 扫一扫分享朋友圈

    二维码

  • 分享

相关问题