二分法.
#include"stdio.h"
int search(int a[],int x)
{
int find,low,high,mid;
find=0;low=1;high=10;
while(!find&&low<=high)
{
mid=(low+high)/2;
if(x==a[mid])find=mid;
else if(x<a[mid])high=mid-1;
else low=mid+1;
}
return find;
}
void main()
{
int i,x,a[11];
printf("请按升序输入10个数:");
for(i=1;i<11;i++)
scanf("%d",&a[i]);
printf("请输入待查找的数x:");
scanf("%d",&x);
printf("数%d在数组a中的位置为%d\n",x,search(a,x));
}
温馨提示:答案为网友推荐,仅供参考