这种数组需要三重循环嵌套来解决吗?

ningyong58 2009-04-17 03:57:55
数据源
项目 x1 : y1 : x2 : y2
第1点: 0 : 2 : 0 : 0
第2点: 1 : 2 : 0 : 2
第3点: 1 : 0 : 1 : 2
第4点: 0 : 0 : 1 : 0
数组整理后结果如下

项目 x1 : y1 : x2 : y2
第1点: 0 : 2 : 0 : 0
第2点: 0 : 0 : 1 : 0
第3点: 1 : 0 : 1 : 2
第4点: 1 : 2 : 0 : 2

现在解决办法是三重循环嵌套
Sub llsssss()
Dim aa(3) As Variant
aa(0) = Array(0, 2, 0, 0)
aa(1) = Array(1, 2, 0, 2)
aa(2) = Array(1, 0, 1, 2)
aa(3) = Array(0, 0, 1, 0)
Dim bb(3, 3)
xx = aa(0)(2): yy = aa(0)(3)
For jj = 0 To 3
bb(0, jj) = aa(0)(jj)
Next jj

For kk = 1 To 3
For ii = 0 To 3
If xx = aa(ii)(0) And yy = aa(ii)(1) Then
For jj = 0 To 3
bb(kk, jj) = aa(ii)(jj)
Next jj
xx = aa(ii)(2): yy = aa(ii)(3)
Exit For
End If
Next ii
Next kk
For ii = 0 To 3
tt = " bb(" & ii & ")=array("
For jj = 0 To 3
tt = tt & bb(ii, jj) & ","
Next jj
tt = Left(tt, Len(tt) - 1)
tt = tt & ")"
Debug.Print tt
Next ii
End Sub
结果为
bb(0)=array(0,2,0,0)
bb(1)=array(0,0,1,0)
bb(2)=array(1,0,1,2)
bb(3)=array(1,2,0,2)
现在存在的问题是采用了三重嵌套循环,效率太低.
还有一个问题是数组
aa(0) = Array(0, 2, 0, 0)
aa(1) = Array(1, 2, 0, 2)
aa(2) = Array(1, 0, 1, 2)
aa(3) = Array(0, 0, 1, 0)
红色部分经常会有下面数组组合存在.
aa(1) = Array(0, 2, 1, 2)
上面的程序肯定有问题,效率太低.
...全文
232 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jygkkkd 2009-05-18
  • 打赏
  • 举报
回复
SYSSZ 2009-05-17
  • 打赏
  • 举报
回复
0 : 2 : 0 : 0
1 : 2 : 0 : 2
1 : 0 : 1 : 2
0 : 0 : 1 : 0
0 : 2 : 0 : 0
0 : 0 : 1 : 0
1 : 0 : 1 : 2
1 : 2 : 0 : 2
一个二维数组
ning84 2009-05-17
  • 打赏
  • 举报
回复
JF
ning84 2009-05-17
  • 打赏
  • 举报
回复
JF
ningyong58 2009-04-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 SYSSZ 的回复:]
用二维数组
[/Quote]
直接写二维数组比较麻烦。
Dim aa(3) As Variant
aa(0) = Array(0, 2, 0, 0)
aa(1) = Array(1, 2, 0, 2)
aa(2) = Array(1, 0, 1, 2)
aa(3) = Array(0, 0, 1, 0)
不是一个演变的二维数组吗??
SYSSZ 2009-04-17
  • 打赏
  • 举报
回复
用二维数组

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧