试试看 可以了,谢.还有个问题,请教如何处理, 我自己做的代码总是有问题.假设已排X值对数组PData排序,那如何取出X每5个步进值之内,最大的Rate值?如果结构是这样: type TPointStruct = record // Txt: string; //字符 X: Integer; //X位置 Rate: Integer; //大小 end;var PData: array of TPointStruct; //定义结构体 比如,数据: r,24,32 i,25,31 t,26,64 t,27,64 l,28,87 ... 如何得到l,28,87这一行?当得到这一行后,下一个28要+5以上再找它5个相似的最大值 既然数组已经有序了,直接对数组进行循环 for i:=0 to 数组长度-1 do begin n := i mod 5; if n<=4 then begin 定义两个结构存取到的元素,如果新的元素的rate大于旧的,把新的值给旧的。 if n=4时 旧的就是这5个中最大的rate了,把这个元素保存到另个一个新的数组里 end; end;循环完了,这个新的数组里就是每5个中rate最大的了。
试试看 可以了,谢.还有个问题,请教如何处理, 我自己做的代码总是有问题.假设已排X值对数组PData排序,那如何取出X每5个步进值之内,最大的Rate值?如果结构是这样: type TPointStruct = record // Txt: string; //字符 X: Integer; //X位置 Rate: Integer; //大小 end;var PData: array of TPointStruct; //定义结构体 比如,数据: r,24,32 i,25,31 t,26,64 t,27,64 l,28,87 ... 如何得到l,28,87这一行?当得到这一行后,下一个28要+5以上再找它5个相似的最大值 既然数组已经有序了,直接对数组进行循环 for i:=0 to 数组长度-1 do begin n := i mod 5; if n<=4 then begin 定义两个结构存取到的元素,如果新的元素的rate大于旧的,把新的值给旧的。 if n=4时 旧的就是这5个中最大的rate了,把这个元素保存到另个一个新的数组里 end; end;循环完了,这个新的数组里就是每5个中rate最大的了。 代码出来了,但为什么达不到效果? 请移步http://bbs.csdn.net/topics/390899283
begin
PData[K - 1].Txt := PData[K].Txt;
PData[K - 1].X := PData[K].X;
PData[K].Txt := '';
PData[K].X := 0;
Inc(K);
Dec(Count);
end;
Count 这个是全局变量。上个循环会造成部分数组未循环
试试看
可以了,谢.还有个问题,请教如何处理,
我自己做的代码总是有问题.假设已排X值对数组PData排序,那如何取出X每5个步进值之内,最大的Rate值?如果结构是这样:
type
TPointStruct = record //
Txt: string; //字符
X: Integer; //X位置
Rate: Integer; //大小
end;var
PData: array of TPointStruct; //定义结构体
比如,数据:
r,24,32
i,25,31
t,26,64
t,27,64
l,28,87
...
如何得到l,28,87这一行?当得到这一行后,下一个28要+5以上再找它5个相似的最大值
试试看
可以了,谢.还有个问题,请教如何处理,
我自己做的代码总是有问题.假设已排X值对数组PData排序,那如何取出X每5个步进值之内,最大的Rate值?如果结构是这样:
type
TPointStruct = record //
Txt: string; //字符
X: Integer; //X位置
Rate: Integer; //大小
end;var
PData: array of TPointStruct; //定义结构体
比如,数据:
r,24,32
i,25,31
t,26,64
t,27,64
l,28,87
...
如何得到l,28,87这一行?当得到这一行后,下一个28要+5以上再找它5个相似的最大值
既然数组已经有序了,直接对数组进行循环
for i:=0 to 数组长度-1 do
begin
n := i mod 5;
if n<=4 then
begin
定义两个结构存取到的元素,如果新的元素的rate大于旧的,把新的值给旧的。
if n=4时 旧的就是这5个中最大的rate了,把这个元素保存到另个一个新的数组里
end;
end;循环完了,这个新的数组里就是每5个中rate最大的了。
试试看
可以了,谢.还有个问题,请教如何处理,
我自己做的代码总是有问题.假设已排X值对数组PData排序,那如何取出X每5个步进值之内,最大的Rate值?如果结构是这样:
type
TPointStruct = record //
Txt: string; //字符
X: Integer; //X位置
Rate: Integer; //大小
end;var
PData: array of TPointStruct; //定义结构体
比如,数据:
r,24,32
i,25,31
t,26,64
t,27,64
l,28,87
...
如何得到l,28,87这一行?当得到这一行后,下一个28要+5以上再找它5个相似的最大值
既然数组已经有序了,直接对数组进行循环
for i:=0 to 数组长度-1 do
begin
n := i mod 5;
if n<=4 then
begin
定义两个结构存取到的元素,如果新的元素的rate大于旧的,把新的值给旧的。
if n=4时 旧的就是这5个中最大的rate了,把这个元素保存到另个一个新的数组里
end;
end;循环完了,这个新的数组里就是每5个中rate最大的了。
代码出来了,但为什么达不到效果?
请移步http://bbs.csdn.net/topics/390899283