注册 登录
编程论坛 VB6论坛

请教下数组排序的问题

zyc080205 发布于 2014-04-27 10:42, 428 次点击
我的数组格式是这样的
x               y               z  
0.99     218.36     198.47
0.99     219.03     198.56
0.99     220.37     198.72
0.99     299.99     199.00
1.99     220.37     198.72
1.99     219.03     198.56
1.99     218.36     198.47
1.99     217.69     198.37
1.99     213.67     197.59
2.99     94.37     99.23
2.99     95.04     99.28
2.99     96.38     99.41
2.99     97.05     99.48
2.99     98.39     99.65
要使相同的X值,Y要呈逐渐的增大的趋势。
比如说X=0.99,Y是逐渐增大的就不用管。X=1.99时,Y是逐渐减小的,就颠倒Y和Z 的顺序,使X=1.99时所有的Y和Z最后一个变成第一个,第一个变成最后一个。
最好有代码哦,我自己编的问题太多了,谢谢。
2 回复
#2
owenlu19812014-04-27 11:45
1.保存记录的文档时什么格式?Txt or Mdb or ?
2.最后以什么格式呈现和保存?
3.提供下你的代码看看
#3
lowxiong2014-04-27 13:36
你这是一个多维数组排序的问题。假设数组最多100个(第一维范围为0-99),第二维0对应X值,1对应Y值,2对应为Z值(第二维范围为0-2),用简单的冒泡法排序代码如下(假设数据已读进数组DD(99,2)中,未排序)
dim i as integer,j as integer,x as single,y as single,z as single
for i=0 to 98
  for j=1 to 99
    if dd(i,0)>dd(j,0) or (dd(i,0)=dd(j,0) and dd(i,1)>dd(j,1)) then
      '数据交换
      x=dd(i,0):y=dd(i,1)z=dd(i,2)
      dd(i,0)=dd(j,0):dd(i,1)=dd(j,1):dd(i,2)=dd(j,2)
      dd(j,0)=x:dd(j,1)=y:dd(j,2)=z
    endif
  next
next
'排序完成,你所需要的结果在数组dd(99,2)中
1