有15个数按由大到小的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素

问题描述:

有15个数按由大到小的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素
看看我的错在哪了.
#include
int main()
{
int a[15]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
int begin,end,midlle,x;
printf("%d",a[15]);
printf("请输入一个数:");
scanf("%d",x);
for(begin=0,end=14;;)
{
midlle=(begin+end)/2;
if(x==a[midlle])break;
if(x>a[midlle])begin=midlle+1;
if(xbegin)break;
}
if(x==a[midlle])printf("这个数是数组中第%d个元素的值",midlle+1);
if(end>begin)printf("这个数组中没有这个数");
}
1个回答 分类:综合 2014-11-11

问题解答:

我来补答
#include
int main()
{
int a[15]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
int begin,end,midlle,x;
printf("%d",a[14]); //a【15】该位置改为a【14】最大为14
printf("请输入一个数:");
scanf("%d",&x); //scanf第二个参数为地址,需要加上取地址符
for(begin=0,end=14;;)
{
midlle=(begin+end)/2;
if(x==a[midlle])break;
if(x>a[midlle])begin=midlle+1;
if(x
 
 
展开全文阅读
剩余:2000
下一页:绘图