如何比较出几个个值的大小?并取最大的值.(20分)

  • 主题发起人 主题发起人 m911
  • 开始时间 开始时间
M

m911

Unregistered / Unconfirmed
GUEST, unregistred user!
var
i1:integer;
i2:integer;
i3:integer;
i4:integer;
i5:integer;


i1:= 20;
i2:= 15;
i3:= 30;
14:= 30;
i5:= 30;


showmessage('i3!');
如何取出最大的值?(如果有几个相等的最大值 则取第一个!) 比较高效的代码怎么写? 谢谢!
 
要显示你用的变量名?有点深奥....
 
返回变量的“名称”,或者说你源码对变量的标示,除非提前告知、额外存储,否则在 delphi 这种编译性的语言中是办不到的。
 
不是返回名称,只要对比出哪个是最大的就行! (如果有几个相等的最大值 则取第一个!)

例如
var
i1:integer;
i2:integer;
i3:integer;
i4:integer;
i5:integer;
da:integer;

i1:= 20;
i2:= 15;
i3:= 30;
14:= 30;
i5:= 30;

......
返回结果是
then da := i3;

这个应该很简单吧?
 
我深刻检讨,没东脑筋就来提问,应该是循环自身减其他数值都大于等于0 那个肯定是最高的数值,唉 我真笨,但是谁能帮我写个这样的循环啊? 不胜感激啊! 我是新手 谢谢
 
uses math

...
da:=max(i1,max(i2,max(i3,max(i4,i5))));
呵呵,这个最有 代码效率,但是运行效率就不知道了。
 
如果i的数目未知,你才需要循环:

uses math
...
...
da:=0;
for j:=1 to 5 do
da:=max(da,i[j])
da is you need.
 
辛苦了 我结账!
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部