| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦   
共有 534 人关注过本帖
标题:求助:如何比较N个数的大小
收藏  订阅  推荐  打印
wys9425sy
Rank: 1
等级:新手上路
帖子:2
积分:120
注册:2007-6-1
求助:如何比较N个数的大小

用D如何得出N个数中的最大最小值.望给出源码.我是一个初学者.谢谢.
2008-6-21 21:06
wwuse2006
Rank: 1
等级:新手上路
帖子:2
积分:176
注册:2008-6-21

很好解决的,给你写个例子自己看吧!
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-6-21 21:42
wys9425sy
Rank: 1
等级:新手上路
帖子:2
积分:120
注册:2007-6-1

谢谢.过程就是把最大的赋值给变量,循环一遍就得出来了.
我真傻!!
2008-6-21 22:03
provoke
Rank: 12Rank: 12Rank: 12
等级:版主
帖子:150
积分:1798
威望:4
注册:2007-6-14

2楼的两个函数都有错,错在返回结果的赋初值:

       result:=0;                  //错在这里

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

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

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

改进建议

       result:=vData[0];

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

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

爱我至爱,至死不渝!
2008-6-22 13:32
coolvirus
Rank: 1
等级:新手上路
帖子:9
积分:196
注册:2007-10-12

provoke说得好!
2008-7-15 19:33
共有 533 人关注过本帖
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.051026 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved