怎样求出最小3个数或最大3个数(50分)

  • 主题发起人 主题发起人 baoping
  • 开始时间 开始时间
B

baoping

Unregistered / Unconfirmed
GUEST, unregistred user!
......
var i1,i2,i3,i4,i5,i6,i7,i8:integer
begin

i1:=..;
i2:=..;

怎样求出最小3个数或最大3个数?
 
进行排序不就可以了嘛?
 
放在数组里排完序 不就ok了吗??
 
数组怎么排序呀?

能不能具体一些,谢谢!
 
典型的冒泡排序

自己搜索一下
 
我把数字放到Tstringlist,然后用Tstringlist.Sort,好像有问题
 
把数字放到Tstringlist 数字不足十位前面用0补足十位
 
冒泡排序:
procedure Bubble;
var
tmpNum : integer;
i : integer;
j : integer;
A : array[1..8] of integer;
begin
A[1] := i1;
.
.
.
A[8] := i8;

///以下是冒泡排序
for i := 1 to 8 do
begin
for j := i+1 to 8 do
begin
if A > A[j] then //发现下面的小则交换
begin
tmpNum := A;
A := A[j];
A[j] := tmpNum;
end;
end;
end;
end;
排完序以后 A[1]-A[3]最小的三个数 A[6]-A[8]最大的三个数
 
A[1..8]若有相同数怎办?
 
TO baoping:
TStringList中的排序是按字符进行比较的,你可以yuzk2005的方法,或者是自己写一个排序方法,可以使用zhuangqr提供冒泡法。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
915
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部