【正确答案】#include
#define SIZE 20
int search( int list[ ] , int n , int len )
{
int low = 0 , high = len-1 , k ;
while ( low<=high ) {
k = ( low + high) / 2 ;
if ( list[k]==n) return k ;
else if ( list[k]>n) high = k-1 ;
else low = k+1 ;
}
return -1 ;
}
main()
{
int a[SIZE],n;
int k;
for(int j = 0; j < SIZE; j++)
scanf(“%d”, a+j);
scanf("%d",&n);
k=search(a, n, SIZE);
if(k==-1) printf("the number %d is not in the array a/n",n);
else printf("the number %d is in the array a/n",n);
}
评分标准:
(1)定义及说明部分 2分
(2)数据输入 2分
(2)search函数 9分
(3)其它 2分
【答案解析】