本文主要是介绍有15个数按由大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数”,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
#include <stdio.h>#include <conio.h>
int main(){
int a[7]={1,2,3,4,5,6,7};
int i,num,n,low,high,mid;
printf("数组为:\n");
for(i=0;i<7;i++)
printf("%3d",a[i]);
printf("\n请输入数组中的一个数:");
scanf("%d",&num);
n=7;
low=0;
high=n-1;
while(low<=high){
mid=(low+high)/2;
if(num<a[mid])
high=mid-1;
else if(num>a[mid])
low=mid+1;
else if(num==a[mid]){
printf("%d是数组中第%d个元素的值",num,mid+1);
break;
}
}
if(num!=a[mid])
printf("无此数");
getch();
return 0;
}
这篇关于有15个数按由大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数”的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!