#include <stdio.h> int main() { int i = 0; int arr[10] = { 1,2,3,4,5,6,7,8,9,10 }; int x = 0; printf("输入要查找的元素值:"); scanf("%d", &x); int sz = sizeof(arr) / sizeof(arr[0]); int left = sz - 1; int mit = 0; int right = 0; //二分查找 while (right < left) { mit = (left + right) / 2;//用mit做为数组中间值下标 if (arr[mit] == x) { i = 1;//用变量i做为判断是否找到的条件,找到为1,否则为0 break; } else if (arr[mit] < x)//此时x大于中间值 { right = mit + 1; } else//此时x小于中间值 { left = mit - 1; } } if (i == 1) { printf("找到了,在下标为%d的位置\n", mit); } else printf("没找到\n"); return 0; }