注意此题是要求用拆半法,当然前提必须是数组已经排好序的
#include<stdio.h>
int main()
{ int t[9]={1,3,5,7,9,11,13,15,17};
int start=0,end=8,c,mid; //start表示查找区间开始的位置,end是查找区间的最末位置
scanf("%d",&c);
while(start<=end)
{
mid=(start+end)/2;
if(c==t[mid])
{
printf("%d\t,%d\t",t[mid],mid);
break;
}
else if(c>t[mid])
start=mid+1; // 如果要查找的数字大于中间数,这个时候开始的位置要从中间位置加一
else end=mid-1; //如果查找的数字小于中间数,这个时候结束的位置从要中间减一
}
if(a>b)
printf("无此元素");
system("pause");
return 0;
}