标题:一位数组转化为二维数组,有点难哦!!请教!
只看楼主
guiyangl015
Rank: 1
等 级:新手上路
帖 子:125
专家分:0
注 册:2006-5-21
 问题点数:0 回复次数:2 
一位数组转化为二维数组,有点难哦!!请教!
现在由一个二维数组
AA( 1 to i, 1 to i),
这里假设i= 4,数组的值分别为:
1   2   3   4
5   6   7   8
9   10  11  12
13  14  15  16
一维数组为A(1 to k),这里k=(i-1)*i/2 = 6,它的值分别取二维数组的上三角的6个值.
即要实现:
A(1)=AA(1,2)=2
A(2)=AA(1,3)=3
A(3)=AA(1,4)=4
A(4)=AA(2,3)=7
A(5)=AA(2,4)=8
A(6)=AA(3,4)=12
请教在i值变化的情况下,如何实现上面的赋值????
搜索更多相关主题的帖子: 赋值 三角 
2008-03-15 21:48
anbry
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-3-14
得分:0 
我不知道你二维数组里,第一维和第二维是不是一样的。我假设是一样的。

dim A2(3,3)'存放的二维数组,0-3共4个
dim A1() '动态数组存放结果
dim UB as Long'存放二维数组上限
dim i as long,ii as long
dim Index as long'记录A1的个数
UB=UBound(A2,1)'取第一维的上限
Index=0
'如果A2不是从下限0开始的,把i=0换为你的下限
for i=0 to UB
    for ii=i+1 to UB
        Preserve Redim A1(Index)
        Index=Index+1
        A1=A2(i,ii)
    next
next

以上代码未经调试,如有错误请自行改正。

[[it] 本帖最后由 anbry 于 2008-3-15 22:54 编辑 [/it]]
2008-03-15 22:49
guiyangl015
Rank: 1
等 级:新手上路
帖 子:125
专家分:0
注 册:2006-5-21
得分:0 
谢谢anbry回复!!你的方法也挺好的!!
呵呵,我之前也想到用“preserve Redim”,不过后来没有实现!
今天冥思苦想,终于也找到一种方法了!放在这里交流一下,呵呵!!
上面二维数组的两维是一样的,我的方法是:
dim m% ,n%, k%
for m = 1 to (i-1)
  for n = (m+1) to i
    k = k + 1
    A(k)=AA(m,n)
  next n
next m

站的高,才能看的远!!
2008-03-16 10:24



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-203609-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.502465 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved