#define _CRT_SECURE_NO_WARNINGS 1
#include
int main()
{
int arr[10] = { 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 };
int n;
int sz = sizeof(arr) / sizeof(arr[0]); //数组字节长度
scanf(" %d", &n); //输入想要找的值
int left = 0; //定义左右角标 数组从0开始定义
int right = sz - 1;
while (left < right)
{
int mid = (left + right) / 2;
if (n > arr[mid])
{
left = mid + 1;
}
else if (n < arr[mid])
{
right = mid - 1;
}
else
{
printf("找到了要找的值:\n");
printf("%d\n", mid);
break; //终止循环
}
}
if (arr[left] > arr[right])
{
printf("-1\n");
}
return 0;
}
在数组中找不到要找的值后为什么不输出-1呢
if(left > right)吧,最后的if