1

我正在做一个 Ada 程序,其中有很多不同的函数与数组混淆,我得到了所有的排序函数,我现在坚持使用循环不变量来检索数组中的最大值来设计该函数的循环。有什么帮助吗?

4

2 回答 2

3

简单地循环整个数组怎么样?

像这样的东西:

function Get_Maximum (Of : My_Array_Type) return Element_Type is
   Maximum : Element_Type := Of (Of'First);
begin
   for I in Of'First + 1 .. Of'Last loop
      if Of (I) > Maximum then
         Maximum := Of (I);
      end if;
   end loop;
   return Maximum;
end Get;

如果数组为空,将引发异常,但如果需要这些情况,则留给读者练习。

于 2011-10-17T07:19:25.617 回答
1

oenone 对于未排序的数组是正确的,但是正如您所说,您的排序功能正常工作,为什么不对数组进行排序,然后使用:

Maximum := Of(Of'Last);
于 2011-10-17T10:05:15.783 回答