The question is based on the following program fragment.
f(intY[10],int x){
int u,j,k;
i=0;j=9;
do{
k=(i+j)/2;
if(Y[k] < x) i=k; else j=k;
} while(Y[k]!=x) && (i<j));
if (Y[k]==x) printf(“x is in the array.”);
else printf(“x is not in the array.”);
}
On which of the following contents of ‘Y’ and ‘x’ does the program fail?
- $Y$ is $[1\;2\;3\;4\;5\;6\;7\;8\;9\;10]$ and $x<10$
- $Y$ is $[1\;3\;5\;7\;9\;11\;13\;15\;17\;19]$ and $x<1$
- $Y$ is $[2\;2\;2\;2\;2\;2\;2\;2\;2\;2]$ and $x>2$
- $Y$ is $[2\;4\;6\;8\;10\;12\;14\;16\;18\;20]$ and $2<x<20$ and $’x’$ is even