这里for(;;)为什么循环了三次就循环不下去了?????
#define _CRT_SECURE_NO_WARNINGS 1 //使scanf strcpy strlen能够使用
# include <stdio.h>
# include <string.h>//能够用strlen函数(测量char函数组的长度)
#include<windows.h>//Sleep(延时)
#include<stdlib.h>//使用系统自带的函数
#include<math.h>  //使用数学代码
#include<stdlib.h>  //使用随机数字rand()  srand()后面是用来让前面的随机值真正随机
#include<time.h>  //使用time()系统自带的时间
int binary_search(int arr1[], int x,int y)
{
  int left = 0;
  int right = y-1;
  int mid = 0;
  //printf("%d", right);
  for (mid=0; left <= right;)
  {
    mid = left+right/2;
    if (arr1[mid] < x)
      left = mid + 1;
    else if (arr1[mid] > x)
      right = mid - 1;
    else
      return mid;
  }
  return -1;
}
int main()
{
  int arr[] = { 0,1,2,3,4,5,6,7,8,9,10 };
  int k = 0;
  int sz = sizeof(arr) / sizeof(arr[1]);
  for (;;)
  {
    scanf("%d", &k);
    if (k <= 10 && k >= 0) {
      int ret = binary_search(arr, k, sz);
      if (ret == -1)
        printf("找不到这个数字\n");
      else
        printf("找到了,这个数的下标为%d\n", ret);
    }
    else
      printf("请重新输入\n");
  }
  return 0;
}









