新建 文本文档.txt
资源名称:check.rar [点击查看]
上传用户:fjxmgct
上传日期:2022-08-01
资源大小:1k
文件大小:1k
源码类别:
数学计算
开发平台:
Visual C++
- 有15个数按由小到大顺序放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中的第几个元素的值,如果该数不在数组中,则打印出无此数 的C程序代码 谢谢!!!
- #include <stdio.h>
- int a[15]={1,2,3,4,5,6,7,8,9,10,11,13,14,15,16};
- int search(int key,int left,int right)
- {
- int mid;
- if(left==right)
- {
- if(a[left]==key)
- return left;
- else
- return -1;
- }
- else
- {
- mid=(left+right)/2;
- if(mid==left)
- mid++;
- if(key<a[mid])
- return search(key,left,mid-1);
- else
- return search(key,mid,right);
- }
- }
- int main()
- {
- int in;
- while(true)
- {
- printf("请输入查找值:(输入0退出)n");
- scanf("%d",&in);
- if(in==0)
- break;
- else
- {
- in=search(in,0,14);
- if(in==-1)
- printf("该数不存在n");
- else
- printf("该数的索引值为:%dn",in);
- }
- }
- return 0;
- }