N个有序整数数列已放在一维数组中,给定下列程序中,函数fun()的功能是:利用折半查找算法查找整数m在数组中的位置。若找到,则返回其下标值:反之,则返回-1。
折半查找的基本算法是:每次查找前先确定数组中待查的范围:low和high(low<high),然后把m与中间位置(mid)中元素的值进行比较。如果m的值大于中间位置元素中的值,则下一次的查找范围放在中间位置之后的元素中;反之,下次查找范围落在中间位置之前的元素中。直到low>high,查找结束。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
include <stdio.h>
define N 10
/*************found*********************/
void fun(int a[],int m)
{ int low--0,high=N-l,mid;
while (low<=high)
{ mid=(low+high)/2;
if(m<a[mid])
high=mid-1;
/*************found*********************/
else if(m>=a [mid])
low=mid+1;
else return(mid);
}
return(-1);
}
main ()
{ int i,a[N]={-3,4,7,9,13,24,67,89,100,180},k,m;
printf ("a数组中的数据如下: ");
for(i=0;i<N;i++) printf("%d",a[i]);
printf ("Enter m: "); scanf ("%d", &m);
k=fun (a,m);
if (k>=0) printf ("m=%d, index=%d\n",m, k);
else printf("Not be found!\n");
}
发布时间:2024-05-06正确答案:(1)错误:void fun(int a[]int m) 正确:int fun(int a[]int m)(2)错误:else if(m>=a[mid]) 正确:else if(m>a[mid])
(1)错误:void fun(int a[],int m) 正确:int fun(int a[],int m)(2)错误:else if(m>=a[mid]) 正确:else if(m>a[mid]) 解析:fun (int a[],int m)函数的返回值为int类型,所以定义函数时,函数的返回类型不能是void,而是int类型。
else if(m>=a[mid]中的m>a[mid]与m=a[mid]两个条件段的结果不一样,所以要分开考虑。
某机器字长为n 最高位是符号位 其定点整数的最大值为()。 A
某机器字长为n,最高位是符号位,其定点整数的最大值为()。A 2n-1 B 2n-1 -1 C 2n D 以上都不对请帮忙给出正确答案和分析,谢谢!
答案解析某机器字长为n 最高位是符号位 其定点整数的最大值为()。 A
某机器字长为n,最高位是符号位,其定点整数的最大值为()。A 2n-1B 2n-1-1C 2nD 2n-1请帮忙给出正确答案和分析,谢谢!
答案解析在数据库处理过程中 执行语句S=int(50*rnd)后 S的值是()。
在数据库处理过程中,执行语句S=int(50*rnd)后,S的值是()。A [0,49]的随机整数B [0,50]的随机整数C [1,49]的随机整数D [1,50]的随机整数请帮忙给出
答案解析机器字长确定后 ()运算过程中不可能发生溢出。 A. 定点正整
机器字长确定后,()运算过程中不可能发生溢出。A 定点正整数 X 与定点正整数 Y 相加B 定点负整数 X 与定点负整数 Y 相加C 定点负整数 X
答案解析6位无符号二进制数能表示的最大十进制整数是A.64B.63C.32D.31
6位无符号二进制数能表示的最大十进制整数是A 64B 63C 32D 31请帮忙给出正确答案和分析,谢谢!
答案解析从键盘上接受一位整数并存入内存变量X 正确的操作为()。A.WAIT
从键盘上接受一位整数并存入内存变量X,正确的操作为()。A WAIT TO XB ACCEPT TO XC INPUT TO XD STORE TO X
答案解析试题3如果删除一个非零无符号二进制偶整数后的2个0 则此数的值
试题3如果删除一个非零无符号二进制偶整数后的2个0,则此数的值为原数的()。A.4倍B.2倍C.1 2D.1 4
答案解析试题1下列程序的功能是:找出所有100以内(含100)满足i i+4 i
试题1下列程序的功能是:找出所有100以内(含100)满足i,i+4,i+10都是素数的整数i(i+10也在100以内)的个数cnt以及这些i之和sum。请编写函数countvalue()
答案解析试题2本程序中 函数fun的功能是计算整数n的阶乘。程序中存在若
试题2本程序中,函数fun的功能是计算整数n的阶乘。程序中存在若干错误,请找出并改正。(注意:不改动程序的结构,不得增行或删行。) include <stdio h
答案解析若对二进制整数x和y的各位进行异或运算后的结果为全0 则说明(1
若对二进制整数x和y的各位进行异或运算后的结果为全0,则说明(10)。(10)A x>yB x<yC x=yD x =-y请帮忙给出正确答案和分析,谢谢!
答案解析Copyright © 2016-2023 114题库网(114158.com)All Rights Reserved.  免责声明 豫ICP备19007809号-5