标题:求助:如何比较N个数的大小
只看楼主
wys9425sy
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-6-1
 问题点数:0 回复次数:4 
求助:如何比较N个数的大小
用D如何得出N个数中的最大最小值.望给出源码.我是一个初学者.谢谢.
搜索更多相关主题的帖子: 如何 
2008-06-21 21:06
wwuse2006
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-6-21
得分:0 
很好解决的,给你写个例子自己看吧!
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;
2008-06-21 21:42
wys9425sy
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-6-1
得分:0 
谢谢.过程就是把最大的赋值给变量,循环一遍就得出来了.
我真傻!!
2008-06-21 22:03
provoke
Rank: 2
来 自:广州
等 级:新手上路
威 望:5
帖 子:175
专家分:0
注 册:2007-6-14
得分:0 
2楼的两个函数都有错,错在返回结果的赋初值:

       result:=0;                  //错在这里

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

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

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

改进建议

       result:=vData[0];

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

[[it] 本帖最后由 provoke 于 2008-6-22 13:36 编辑 [/it]]

爱我至爱,至死不渝!
2008-06-22 13:32
coolvirus
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-10-12
得分:0 
provoke说得好!
2008-07-15 19:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-220445-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.153363 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved