回复 10楼 pangshch
thank you

不过……额……上边的程序好像还是有点小问题诶,好像是continue那里,,,这个。。。你程序是判断到那个点之后就输入yes,然后继续执行了。。。而且不管之前是否知道这个数据你都最后输出“no”了。。。
大侠再帮我看看呗……
程序代码:while (left <= right) { // 加个等于, 因为有等于的情况
mid = (left + right)/2;
if (s[mid] == x) {
printf("YES\n");
break; // 用break结束循环
}
else if (s[mid] < x)
left = mid + 1;
else
right = mid - 1;
}
if (left > right) // 加一个判断, 当left大于right时, 说明数不存在数组里面.
printf("NO\n");
}