有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("这个数组中没有这个数");
}
答案
#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
举一反三
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
最新试题
热门考点
- 有关友谊的名句中国的 三个
- 从任何一个角度看一个球,看到的形状都是圆形
- 维修卡上 make
- 甲与乙订立一份合同,合同约定甲向乙支付定金6万元,后来因故甲未支付定金,此时乙可以要求甲承担违约责任
- 取一个自然数n1=5,计算n1的2次方+1得a1; 算出a1的各位数字之和得n2,计算n2+1得a2;
- 请问左边一个王字旁右边一个北京的京字,这个字用拼音怎么拼啊?
- 氯化铁与亚硫酸钠的反应方程式
- 1 Two cats and a dog _____ (be) in the room.
- 小明没写作业,老师问他原因,他默不作声 写歇后语
- 一个数的百分之四十比它的百分之十五多十六分之三,这个数是多少?