注册 登录
编程论坛 VB6论坛

数组 a(i),b(i),两个数组相关联,但 a(i)相同时,b(i)合并,组成一个新的数组 c(i),d(i)

knight828 发布于 2014-11-16 21:09, 562 次点击
数组a(i),b(i),两个数组相关联,但a(i)相同时,b(i)合并,组成一个新的数组c(i),d(i)
6 回复
#2
txxb2014-11-16 22:02
但a(i)相同时,是啥意思?
b(i合并,又是啥意思?
#3
knight8282014-11-17 06:57
就是数组a(i)里有重复的,b(i)相对应的项合并,如:
a(i)            b(i)            c(i)        d(i)
A                a1              A            a1,b1,cc1
A                b1              B            b2,d4
A                CC1             C            c5
B                b2
B                d4
C                c5
.....
#4
xzlxzlxzl2014-11-17 08:16
这么一比划就明白了,很容易的。
只有本站会员才能查看附件,请 登录


代码如下:

Private Sub Command1_Click()
  Dim a(9) As String, b(9) As String, c() As String, d() As String
  Dim i As Integer, j As Integer, k As Integer
  Randomize
  Me.Cls
  Print "数组A", "数组B"
  For i = 0 To 9
    a(i) = Chr(65 + 5 * Rnd)  '随机产生10个字母到数组a中
    b(i) = Int(100 * Rnd)     '随机产生10个数到数组b中
    Print a(i), b(i)          '显示数组内容
  Next
  k = 0
  ReDim c(k): ReDim d(k)
  For i = 0 To 8
    If a(i) <> "-1" Then
      ReDim Preserve c(k): ReDim Preserve d(k)  '不改变数组CD前面值,增加数组下标
      c(k) = a(i): d(k) = b(i)
      For j = i + 1 To 9
        If a(j) = a(i) Then
          d(k) = d(k) & "," & b(j)   '合并数组B
          a(j) = "-1"                '修改数组A中相同内容为不存在的元素,防止重复判断
        End If
      Next
      k = k + 1
    End If
  Next
  Print "数组C", "数组D"
  For i = 0 To UBound(c)
    Print c(i), d(i)                 '显示合并后数组内容
  Next
End Sub
#5
我可不是大神2014-11-17 13:52
版主能不能文字描述一下
#6
knight8282014-11-17 20:46
不愧是大师,谢谢!
处理的思路有点明白,一直纠结重复怎么处理,
有个地方不明白c(k) = a(i): d(k) = b(i)之间的冒号是什么意思?
没接触过,冒昧一问,见笑!
#7
yangfrancis2014-11-21 08:27
冒号表示前后为两行不相干的语句
1