【vb 数组】VB计算数组中相同数字的个数VB一维数组a(14)中有...

发布时间:2021-04-04 14:28:36

VB计算数组中相同数字的个数VB一维数组a(14)中,有一串不规则的数字,例如3 5 8 1 3 2 4 5 6 6 5 4 1 3 2 ,如何能计算出有多少个相同的数字?print 有2个3 有3个5 有1个8 有2个1以此类推…求高手解答,小弟不胜感激 数学

网友回答

【答案】 Dim a(14) As Integer
  Dim b(10) As Integer
  Private Sub Command1_Click()
  For i = 1 To 14
  a(i) = Int(100 * Rnd()) ‘这里产生100以内的随机数,如要个位数,改成10
  Print a(i);
  Next i
  Print
  For i = 1 To 14
  x = a(i)
  Do
  j = a(i) Mod 10
  b(j) = b(j) + 1
  x = x \ 10
  Loop Until x = 0
  Next i
  For i = 0 To 9
  If b(i) > 0 Then Print 有; b(i); 个; i
  Next i
  End Sub 追问: For i = 0 To n For j = 0 To n If d(j, 1) -9999 Then If a(i) = d(j, 1) Then d(j, 2) = d(j, 2) + 1 Exit For End If Else d(j, 1) = a(i) d(j, 2) = 1 Exit For End If Next j Next i 这一段不太懂,能加个注释吗? 追答: 说明:d是二维数组,第1维度存放找到的数字,第2维度存放找到了该数字几次。 以“3 5 8 1 3 2 4 5 6 6 5 4 1 3 2”为例; d(1, 1)里存放 3,d(1, 2)里存放 3,表示 3个3 d(2,1))里存放 5,d(2, 2)里存放 3,表示 3个5 d(3,1))里存放 8,d(3, 2)里存放 1,表示 1个8 d(4,1))里存放 1,d(4, 2)里存放 2,表示 2个1 d(5,1))里存放 2,d(5, 2)里存放 2,表示 2个2 d(6,1))里存放 4,d(6, 2)里存放 2,表示 2个4 d(7,1))里存放 6,d(7, 2)里存放 2,表示 2个6 代码是从左到右扫描字符串(其实已经存入数组a()), For i = 0 To n For j = 0 To n If d(j, 1) -9999 Then '因为d()数组的第一维初始化都存放-9999表示还没有开始扫描 如果不等于-9999,那么就是已经存放了找到的某个数字 If a(i) = d(j, 1) Then '这里,如果现在的a(i) 与 已经找到的某个数字相同 d(j, 2) = d(j, 2) + 1 '那么,其第2维要加1,表示又一次找到的相同的数字 Exit For '既然找到了,内循环可以结束了 End If Else '这是对应d()数组的第一维等于初始化的值 -9999 d(j, 1) = a(i) '要这样理解,会运行到这里是基于:这个a(i)是第一次出现 d(j, 2) = 1 '这就是第一次出现的赋值 Exit For End If Next j Next i
以上问题属网友观点,不代表本站立场,仅供参考!