c++用折半法查找数组中元素,自己编了一下,但不知道哪里错了

发布网友

我来回答

1个回答

热心网友

好了:
#include<stdio.h>
void main()
{
int zhe_ban(int a[15],int n);
int a[15]={1,13,26,34,40,51,61,78,84,90,104,117,126,134,149};
int m,n;
printf("请输入M的值:\n");
scanf("%d",&m);
n=zhe_ban(a,m);
if(n==0)
printf("无数次\n");
else
printf("该数是第%d个\n",n+1);
printf("\n如果满意请记得给分\n");

}
int zhe_ban(int a[15],int n)
{int s=0,b=14,t=0,mid;
mid = ( s+b )/2;
while(a[mid]!=n)
{
if(n>a[mid])
mid=(mid+b)/2;
if(n<a[mid])
mid=(mid+s)/2;
if(mid==s || mid==b)
break;
}
if(a[mid]==n)
t=mid;
return(t);

}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com