考虑下面的C程序,该程序尝试使用二进制搜索在数组Y []中定位元素x。该程序是错误的。
1. f(int Y[10], int x) {
2. int i, j, k;
3. i = 0; j = 9;
4. do {
5. k = (i + j) /2;
6. if( Y[k] < x) i = k; else j = k;
7. } while(Y[k] != x && i < j);
8. if(Y[k] == x) printf ("x is in the array ") ;
9. else printf (" x is not in the array ") ;
10. }
程序在Y和x的以下哪些内容上失败?
(A) Y为[1 2 3 4 5 6 7 8 9 10]并且x <10
(B) Y为[1 3 5 7 9 11 13 15 17 19]并且x <1
(C) Y为[2 2 2 2 2 2 2 2 2 2 2]并且x> 2
(D) Y为[2 4 6 8 10 12 14 16 18 20]并且2
说明:请参阅https://www.geeksforgeeks.org/data-structures-and-algorithms-set-21/的问题3
这个问题的测验