回 帖 发 新 帖 刷新版面

主题:请教下数组问题

有一个数组里面储存着很多01到100之间的正整数,要统计出各个数字在数组里面出现的次数,请高手教一下方法,谢谢!
例如 
数组A组:60、75、55、90、88、70、90、60、55、91、80、70.....

[出现0次]08,20,30, 45,50,55 (共6个)
[出现1次]03,06,28,46,85,88,90,93,95,98,(共10个)
[出现2次]05,07,33,60,61,64,70,72,75,78,80,86,94 (共13个)
[出现5次]04,09,15,25,40,53,66,68,77,87,97,(共11个)

回复列表 (共6个回复)

沙发

先说说你的想法吧

板凳

或者你做过不成功的方法

3 楼

没弄懂你的意思,哪个数字在各数组中出现的次数啊?

4 楼

循环来查找可以吗?

5 楼

应该可以利用循环你那几个数组来找的!

6 楼

是作业吗?这个问题看似简单,实际上有一定难度。代码如下:

Private Sub Command1_Click()
Dim a() As Integer, b() As Integer
Dim k As Integer, n As Integer, i As Integer, j As Integer, L As Integer

Randomize
k = 10  '数组元素个数
n = 100 '允许的最大值
ReDim a(1 To k), b(1 To n) '重定义数组下标,注意a、b的不同

For i = 1 To k: a(i) = (n * Rnd) + 1: Next '为数组赋值

For i = 1 To k: Debug.Print a(i) & ",";: Next: Debug.Print: Debug.Print '这一行让你看看是些什么数,可以删除

For i = 1 To k: j = a(i): b(j) = b(j) + 1: Next '统计

For i = 1 To n: Debug.Print i & "的出现次数:" & b(i): Next '这是一种显示方式

Debug.Print

For j = 0 To k '这是另一种显示方式
  L = 0
  Debug.Print "出现次数=" & j; "的数是:";
  For i = 1 To n
    If b(i) = j Then L = L + 1: Debug.Print i & ",";
  Next
  Debug.Print "(共" & L & "个)"
Next

End Sub

我来回复

您尚未登录,请登录后再回复。点此登录或注册