注册 登录
编程论坛 Delphi论坛

求助:如何比较N个数的大小

wys9425sy 发布于 2008-06-21 21:06, 1537 次点击
用D如何得出N个数中的最大最小值.望给出源码.我是一个初学者.谢谢.
4 回复
#2
wwuse20062008-06-21 21:42
很好解决的,给你写个例子自己看吧!
procedure TForm1.Button1Click(Sender: TObject);
var vData:array of integer;
    temp:integer;
    Function FindMaxValues(var vData:array of integer):integer;
    var temp:integer;
    begin
       result:=0;
       for temp:=0 to high(vData) do
           if vData[temp]>result then result:=vData[temp];
    end;
    Function FindMinValues(var vData:array of integer):integer;
    var temp:integer;
    begin
       result:=0;
       for temp:=0 to high(vData) do
           if vData[temp]<result then result:=vData[temp];
    end;
begin
  {定义10个数,给它赋初值,具体值自己给}
  setlength(vData,10);
  for temp:=0 to high(vData) do
      vData[temp]:=temp;
  showmessage(inttostr(FindMaxValues(vData)));
  showmessage(inttostr(FindMinValues(vData)));
end;
#3
wys9425sy2008-06-21 22:03
谢谢.过程就是把最大的赋值给变量,循环一遍就得出来了.
我真傻!!
#4
provoke2008-06-22 13:32
2楼的两个函数都有错,错在返回结果的赋初值:

       result:=0;                  //错在这里

找最大,如果待查找的数组成员全是负数,就会返回0:错误;

找最小,如果待查找的数组成员全是正数,同样也是返回0:错误;

对于上述两种情况,返回值0均不是数组成员。

改进建议

       result:=vData[0];

至于作数组下标的循环变量初值,为1和为0均没有太大的影响,不过可以省略比较 vData[0]

[[it] 本帖最后由 provoke 于 2008-6-22 13:36 编辑 [/it]]
#5
coolvirus2008-07-15 19:33
provoke说得好!
1