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

问题描述:

有十五个数按由大到小顺序存在一个数组之中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的
1个回答 分类:综合 2014-12-14

问题解答:

我来补答
只给函数行么 用P的 自己翻译下
function find(k:longint):longint;
var
left,right,mid:longint;
begin
left:=1;right:=n;
while leftright do
begin
mid:=(left+right) div 2;
if a[mid]>k then left:=mid+1 else right:=mid;
end;
exit(left);
end;
再问: 额,那个...我不是计算机专业的...我是学机械的...有很多东西没有学...所以看不懂...好像我们没有学“:”和...
再答: :=是赋值语句 a:=b 代表把b值赋给a 比如 a:=5;就是令a的值是5 什么的就是大于小于号一个意思,然后a[]是数组元素。 div是取整 比如5 div 2=2 、6 div 2=3 这个意思 还有什么不懂再问
再问: 唉,奇怪,怎么和我们学的不一样,我们学的是C语言,赋值是不要:的取整是,用的%,至于那个倒是一样的......而且while循环while后面的条件要加括号,还有,仅仅是:,比如你写的function find(k:longint):longint,中:又是什么意思......
再答: 这是pascal语言.. 应该可以看懂吧 function find(k:longint):longint; 意思是定义一个函数名为find的函数,带一个参数,返回一个长整形数。
 
 
展开全文阅读
剩余:2000