新建 文本文档.txt
上传用户:fjxmgct
上传日期:2022-08-01
资源大小:1k
文件大小:1k
源码类别:

数学计算

开发平台:

Visual C++

  1. 有15个数按由小到大顺序放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中的第几个元素的值,如果该数不在数组中,则打印出无此数 的C程序代码  谢谢!!! 
  2. #include <stdio.h>
  3. int a[15]={1,2,3,4,5,6,7,8,9,10,11,13,14,15,16};
  4. int search(int key,int left,int right)
  5. {
  6.  int mid;
  7.  if(left==right)
  8.  {
  9.   if(a[left]==key)
  10.    return left;
  11.   else
  12.    return -1;
  13.  }
  14.  else
  15.  {
  16.   mid=(left+right)/2;
  17.   if(mid==left)
  18.    mid++;
  19.   if(key<a[mid])
  20.    return search(key,left,mid-1);
  21.   else
  22.    return search(key,mid,right);
  23.  }
  24. }
  25. int main()
  26. {
  27.  int in;
  28.  while(true)
  29.  {
  30.   printf("请输入查找值:(输入0退出)n");
  31.   scanf("%d",&in);
  32.   if(in==0)
  33.    break;
  34.   else
  35.   {
  36.    in=search(in,0,14);
  37.    if(in==-1)
  38.     printf("该数不存在n");
  39.    else
  40.     printf("该数的索引值为:%dn",in);
  41.   }
  42.  }
  43.  return 0;