guainew:array [0..100] of guailist; //要排序的数组,guailist是自定义类型,有ID和P两个数据,以P的大小来决定排列顺序.[!![之所以设定长度,是因为我下面在给列表赋值时,如果用动态数组会出错,不知道如何解决]!!]
pppp:guailist; //交换位置时的临时变量 for m:=0 to length(guainew)-1 do begin
j:=m;
for i:=m+1 to length(guainew) do begin
if (guainew[i].p<guainew[j].p)then begin j:=i;end;
if (j>m) then begin
pppp:=guainew[m];
guainew[m]:=guainew[j];
guainew[j]:=pppp;
end;
end;
end; for num:=0 to length(guainew)-1 do begin //list显示部分
listbox4.Items.Add(inttostr(guainew[num].id)+'-'+floattostr(guainew[num].p));
end;
注:guainew数组里,P是single的,而且大约有70都是0,其他30个才是>0的数据。而且有一点很奇怪,listbox4.Items.Add在使用的时候应该是把新的数据‘追加’进来才对。那么我在“list显示部分”那里for 10次和100次的结果,前10个数据应该是一样的。但实际上“list显示部分”那里for 10次出现的全部都是0,for 100次的时候前几个数据才是正确的非0数据。不明白是怎么回事……
pppp:guailist; //交换位置时的临时变量 for m:=0 to length(guainew)-1 do begin
j:=m;
for i:=m+1 to length(guainew) do begin
if (guainew[i].p<guainew[j].p)then begin j:=i;end;
if (j>m) then begin
pppp:=guainew[m];
guainew[m]:=guainew[j];
guainew[j]:=pppp;
end;
end;
end; for num:=0 to length(guainew)-1 do begin //list显示部分
listbox4.Items.Add(inttostr(guainew[num].id)+'-'+floattostr(guainew[num].p));
end;
注:guainew数组里,P是single的,而且大约有70都是0,其他30个才是>0的数据。而且有一点很奇怪,listbox4.Items.Add在使用的时候应该是把新的数据‘追加’进来才对。那么我在“list显示部分”那里for 10次和100次的结果,前10个数据应该是一样的。但实际上“list显示部分”那里for 10次出现的全部都是0,for 100次的时候前几个数据才是正确的非0数据。不明白是怎么回事……
解决方案 »
- vc的bool display(CDialog *my_this,ULONG *wrLong,CString str) 的dll 在delphi 怎么调用
- 为什么在wwdbgrid中加入checkbox后,第一行不能操作。
- delphi图表控件tdbchart问题,如何使横轴为当月天数
- 工作选哪个好
- 默认值不见了
- 有关显示器亮度控制的问题,API高手也请进,大家帮帮小弟!
- 关于ACTIVEX控件的使用(急,解决给分)
- 实在不知道就问
- 请问如何制作像IE那样,菜单旁边放动画(转动的地球)的效果??
- 如何动态生成一个类(类型)??
- 写好了一个软件,想请大家帮忙给软件起个名字!
- 关于变量、函数等:用全局变量、函数好 还是 成员变量、方法比较好?
begin
for i:=m+1 to length(guainew)-1 do
begin
if (guainew[i].p<guainew[m].p)then
begin
pppp:=guainew[m];
guainew[m]:=guainew[i];
guainew[i]:=pppp;
end;
end;
end;
pppp:guailist; //交换位置时的临时变量 for m:=0 to length(guainew)-1 do
begin
j:=m;
/////////////////////////////////////////////////////////
for i:=m+1 to length(guainew) do
begin
if (guainew[i].p<guainew[j].p)then
begin
j:=i;
end;
end;
//////////////////////////////////////////这一部分应该在一起的
if (j>m) then
begin
pppp:=guainew[m];
guainew[m]:=guainew[j];
guainew[j]:=pppp;
end;
end; for num:=0 to length(guainew)-1 do begin //list显示部分
listbox4.Items.Add(inttostr(guainew[num].id)+'-'+floattostr(guainew[num].p));
end;
我们现在学c++,刚自学了一点delphi,如果说错了还请见凉