C language programming--function--half search--output subscript value and search times!

Code area

Half search (dichotomy search): output subscript value and search times

#include<stdio.h>
#define N 5  //此处查找五个数,可以自由设定个数
int j=0,flag,mid;   //j为查找次数;flag起到了判断是否     //注:因为打算调用一个有返回值的函数,所以全局变量就用上了!
int half_find(int n,int a[N])
{
int low=0,high=N-1;
 while(low<=high)
 {
  j=j+1;   //查找次数
  flag=0;
  mid=(low+high)/2;
  if(n==a[mid])
  {
   flag=1;  
   return mid;
   break;  //找到了!
  }
  else if(n>a[mid])  //如果比预想的大
  {
   low=mid+1; 
   continue;   //跳出小循环
  }
  else if(n<a[mid])
  {
   high=mid-1;
   continue;
  }
 }
 
}
main()
{
 int a[N],n;
 printf("input 5 numbers\n");
 for(int i=0;i<5;i++)
 {
  scanf("%d",&a[i]);
 }
 printf("what do you want to find from small to big\n");  //输入你想查找的数字(一定是按照顺序输入,此处是从小到大)
 scanf("%d",&n);
 int c=half_find(n,a);
 printf("查找次数:%d\n",j);
 
 if(flag)   //如果找到了
 printf("下标值为:%d\n",c);
 else   //没有找到!
 printf("not find\n");
}
Published 57 original articles · Liked 54 · Visits 2360

Guess you like

Origin blog.csdn.net/September_C/article/details/104932727