因为是练习我把别的代码注释掉了,引用头文件在第一行,以后直接把一段代码搞过来
这是前一天的
int main()//整体用二分法来找数
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };//数组
int k = 7;//设置要寻找的数
int sz = sizeof(arr) / sizeof(arr[0]);//计算这个数组的长度
int left = 0;//最左边下标为0,也就是1的下标为0
int right = sz-1;//最右边下标为数组长度-1
while (left <= right) //循环的条件是左边下标要<=右边,就是两边夹出所寻找的数
{
int mid = (left + right) / 2;//设定中间数下标
if (arr[mid] < k)//判断......
{
left = mid + 1;//设新左下标为mid+1,因为mid<k
}
else if (arr[mid] > k)
{
right = mid - 1;//同理
}
else
{
printf("找到%d\n", mid + 1);//当mid==k时,就找到了这个数的下标,所以+1
break;
}
if (left > right)
{
printf("找不到了/n");
}
}
return 0;
}