C语言高手请到此一游!

来源:百度知道 编辑:UC知道 时间:2024/06/20 07:56:45
用二分搜索算法,若有N个数,如果要查找X为2.3在这些数中的大概位置,求用C语言编写的算法!
高手往这里看啊,要得很急!谢谢了哦!

#include <stdio.h>
#define N 100

float var[N];
int BSearch(float a, int start, int end);

int main(void)
{
float tar;
int addr;
int i;
for(i = 0; i < N; i++)
var[i] = i;
scanf("%f",&tar);
if((addr = BSearch(tar, 0, N-1)) > -1)
{
printf("find %f at %d",tar,addr);
}
else
{
printf(" can not find %f",tar);
}
return 0;
}

int BSearch(float a, int start, int end)
{
int mid = (start + end)/2;
if(start > end)
return -1;
else
{
if( var[mid] == a )
return mid;
else if( var[mid] > a)
return BSearch(a, start, mid-1);
else
return BSearch(a, mid + 1, end);
}
}

大概位置?