为什么有些数没法查找?

#include <stdio.h>
#define N 8
int main()
{
 int a[N]={6,9,15,25,26,48,53};
 int low=0,high=N-1,mid,x;
 printf("请输入要查的数据 :\n");
 scanf("%d",&x);
 while(low<=high)
 {
  mid=(low+high)/2;
  if(a[mid]==x)
  {
   printf("找到,a[%d]=%d\n",mid,x);
   break;
  }
  else
  {
   if(x>a[mid])
   low=mid-1;
   else
   high=mid-1;
  }
 }
 if(low>high)printf("未找到!\n");
 return 0;
 }

http://img.mukewang.com/581ee8f90001d8dd12230238.jpg

http://img.mukewang.com/581ee9200001551406060174.jpg

输入15没法运行!!!

求大神告知!

毁人不倦4153295
浏览 1024回答 1
1回答

望远

#include <stdio.h> #define N 8 int main() {  int a[N]={6,9,15,25,26,48,53};  int low=0,high=N-1,mid,x;  printf("请输入要查的数据 :\n");  scanf("%d",&x);  while(low<=high)  {   mid=(low+high)/2;   if(a[mid]==x)   {    printf("找到,a[%d]=%d\n",mid,x);    break;   }   else   {    if(x>a[mid])    low=mid+1;    else    high=mid-1;   }  }  if(low>high)printf("未找到!\n");  return 0;  }
打开App,查看更多内容
随时随地看视频慕课网APP