C 언어 - 포인터 - 간결판 절반 찾기(이분법 찾기)

6684 단어
코드 영역
#include
#define N 5
int search(int a[N],int n)
{
 int low=0,high=N-1,mid,flag=0;
 while(low<=high)
 {
 mid=(low+high)/2;
 if(*(a+mid)==n)
 {
  flag=mid+1;
    break;
 }
 else if(n>*(a+mid))
 {
  low=mid+1;
 }
 else high=mid-1;
 }
 if(flag)
	 return flag;
 else
	 return 0;
}
main()
{
 int a[N],n,i;
 int *p=a;
 printf("input these numbers in order
"
); for(i=0;i<5;i++) { scanf("%d",&a[i]); } printf("input what you want
"
); scanf("%d",&n); int flag=search(p,n); if(flag) printf(" :%d",flag); else printf("not find
"
); }

좋은 웹페이지 즐겨찾기