知识点:程序问答(五) 程序 #define true 1 #define false 0
int ser(int *p,int k,int low,int hig) { int found=false; int mid,n=0; while(low<=hig &&found==false) { mid=(low+hig)/2; n++; if(p[mid]==k) found=true; if(p[mid]>k) hig=mid-1; if(p[mid]<k) low=mid+1; } printf("n=%d\n",n); if(found==true) return mid; else return -1; } main() { static int p[10]={1,3,5,7,9,12,45,60,89,100}; int j,k; scanf("%d",&j); k=ser(p,j,0,9); if(k==-1) printf("not found\n"); else printf("Position is %d\n",k); } 问题5:键盘输入为7时,程序运行结果是什么? 问题6:说出子函数ser 的含义。
|