利用折半查找法寻找一组数字中的某个数字的位置,输入数组中的数字后,却显示无此数
#include<stdio.h>
int main()
{
int x,s;
int a[15]={0,5,13,19,21,27,56,54,75,80,88,92,105,121,160};
scanf("%d,%d",&x);
int low=0,high=14,middle;
middle=(low+high)/2;
for( ;x!=a[middle]; )
{
middle=(low+high)/2;
if(x>a[middle])
{
low=middle+1;
if(low>high)
{
break;
}
}
else
{
high=middle-1;
if(low>high)
{
break;
}
}
}
s=middle+1;
if(low>high)
printf("无此数\n");
else
printf("%d\n",s);
}
无报错,运行结果有问题
利用折半查找法找到一组数字中某个数字的位置