请帮我,用C语言编写下面一个程序好吗?

来源:百度知道 编辑:UC知道 时间:2024/06/21 11:46:10
有15个数按由大到小的顺序存放在一个数组中,输入一个数,要求用折半查找法找出,该数是数组中第几个元素的值.如果该数不在数组中,则输出“无此数”

#include<stdio.h>

int bs(int *v,int n,int x)
{
int i=1,j=n,k;
while(i<=j)
{
k=(i+j)/2;
if(x==v[k-1])
{
return k;
}
if(v[k-1]>x)
{
j=k-1;
}
else
{
i=k+1;
}
}
return -1;
}
void main()
{
int a[15]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
int k=bs(a,15,20);
if(k==-1)
{
printf("ÎÞ´ËÊý\n");
}
else
{
printf("µÚ%d¸öÊý\n",k);
}
}