VB求数组中(20个元素)出现次数最多的元素,还有出现几次

把20个整型数据存放到一维数组a中,找出a中出现频率最高的元素值和出现的次数。例如把1,5,4,3,5,8,5,3放到a,则出现频率最高元素值是5,次数是3

Private Sub Command1_Click()

  Randomize

  Print "产生20个0~10之间的随机整数:"

  Dim a(20) As Integer

  Dim b(10) As Integer

  For i = 1 To 20

    a(i) = Int(Rnd * 11)

    Print a(i);

    If i Mod 10 = 0 Then Print

  Next i

  For i = 1 To 20

    b(a(i)) = b(a(i)) + 1

  Next i

  Max = 0: maxn = -1

  For i = 0 To 10

    If Max < b(i) Then Max = b(i): maxn = i

  Next i

  Print "出现最多的是"; maxn; "出现了"; Max; "次"

  Print

End Sub

温馨提示:内容为网友见解,仅供参考
第1个回答  2008-11-30
Private Sub Command1_Click()
Dim a(1 To 20) As Integer'存放数组a的元素
Dim b(1 To 20) As Integer'存放数组a中每个元素重复的个数
Dim c, d As Integer
For i = 1 To 20'给数组a的每个元素赋值
a(i) = inputbox("a(" & i & ")的值是:")
'计算每个元素重复的次数
For j = 1 To 20
For i = 1 To 20
If a(j) = a(i) Then
b(j) = b(j) + 1
End If
Next i
Next j
'找出最大的重复数
For j = 1 To 20
c = IIf(c >= b(j), c, b(j))
Next j
'找出最大的重复数对应的元素下标
For j = 1 To 20
If b(j) = c Then
d = j
Exit For
End If
Next
Print "重复次数最多的元素是:"; a(d)
Print "该元素重复的次数是:"; c

End Sub
有问题你找我本回答被提问者采纳
第2个回答  2008-11-30
Private Sub Command1_Click()
Dim k As String
k= text1.text '每个数之间用,隔开
Call Test(k)
End Sub

Sub Test(str As String) ' 创建一个子程序TEST
Dim A() As String '定义一个空的数组
A = Split(str, ",") '字符中以","为分界符把数值赋予数组A
Dim B() As Integer '定义一个空数组
Dim i As Integer
For i = LBound(A) To UBound(A)
ReDim Preserve B(i) '重新定义数组B,并保留B中的植
B(i) = Int(A(i)) '把A中的字符转化为整数赋予B
Next i
For i = LBound(B) To UBound(B)
Print B(i)
Next i
'以下开始是计算出现的次数
Dim c() As String, j, l, o, q, tem() As Integer
ReDim c(UBound(B))
q = 0
For i = 0 To UBound(B)
For j = 0 To UBound(B)
If B(i) = B(j) Then '循环判断当前数出现的次数
l = l + 1 '记录它出现的次数
End If
Next j
ReDim Preserve tem(i) 'TEM用来记录已经判断过的数
tem(i) = B(i)
For q = 0 To UBound(tem) '循环判断该数是否重复判断过
If tem(q) = B(i) Then
o = o + 1
End If
Next
If o = 1 Then '如果不是重复判断就把它保存起来
c(l) = c(l) & B(i) & " "
End If
o = 0
l = 0
Next i
For i = 0 To UBound(c)
If c(i) <> "" Then
Print "出现过" & i & "次的有:" & c(i) '输出
End If
Next
End Sub
第3个回答  2008-11-30
Private Sub Command1_Click()
Dim arr As Variant
Dim ayy(2, 7)
arr = Array(1, 5, 4, 3, 5, 8, 5, 3)
For i = 0 To 7 '排序
For j = i + 1 To 7
If arr(i) < arr(j) Then
temp = arr(i)
arr(i) = arr(j)
arr(j) = temp
End If
Next
Next

For i = 0 To 7 '输出排序后
Print arr(i) & "排序后"
Next
''''''''''主要的算法在这里'''''''''''
dis = 0
ayy(1, dis) = arr(0)
ayy(2, 0) = 1
t1 = arr(dis)

For i = 0 To 6 '把每个元素的个数统计的arr(2,7) 里
t2 = arr(i + 1)
If t1 = t2 Then
ayy(2, dis) = 1 + ayy(2, dis)
Else
dis = dis + 1
ayy(1, dis) = arr(i + 1)
ayy(2, dis) = 1
t1 = t2
End If
Next
''''''''''主要的算法在这里'''''''''''
Ma = 0
flag = 0
For i = 0 To dis '把最多的找出来吧
' Print ayy(1, i) & "有" & ayy(2, i) & "个" '(结果是否正确可使用本句验证)
If Ma < ayy(2, i) Then
flag = i
Ma = ayy(2, i)
End If
Next
Print ayy(1, flag) & "的各数最多,有" & ayy(2, flag) & "个"
End Sub
''这个小程序挺累人的,一定要加分
第4个回答  2022-03-08
dim a(20)
dim i,x,n,m
dim l(20)
for i=1 to 20
a(i)=int(rnd*9)+1
print a(i) 打印出所有数
next
for i=1 to 20
c=0
for z=1 to 20
if a(i)=a(z) then
c=c+1 c:出现次数
end if
next
l(i)=c 算出所有数出现次数
next
for i=1 to 20
if n<l(i) then
n=l(i) 把最大的次数存放在n里
end if
next
for i=1 to 20
if n=l(i) and instr(m,a(i))=0 then 如果次数相同,数值不同 一起存放在m里
m=m & a(i) & " "
end if
next
print m 数值
print n 最大次数

VB求数组中(20个元素)出现次数最多的元素,还有出现几次
Dim a(1 To 20) As Integer'存放数组a的元素 Dim b(1 To 20) As Integer'存放数组a中每个元素重复的个数 Dim c, d As Integer For i = 1 To 20'给数组a的每个元素赋值 a(i) = inputbox("a(" & i & ")的值是:") '计算每个元素重复的次数 For j = 1 To 20 For i = 1 To 20 If ...

...数组a中,找出a中出现频率最高的元素值和出现的次数
MsgBox "出现最高的元素是:" & maxx & ",出现的次数为:" & t + 1 End Sub

VB:如何在20个随机数中找到最大值?(文字 讲下思路就好)
dim a(1 to 20) as integer '声明一个有20个元素的数组 dim max as integer 'max用来放最大值的变量 dim i max=a(1) '先假定数组第一个元素最大 for i= 1 to 20 if a(i)>max then max=a(i) '如果数组中第i个元素比max大,那么就让max等于这个元素 next print max '...

VB 如何统计出一组数里重复最多的数?
将每个数与后面的所有数比较相同的就存到一个数组计数器中 最后才来比较数组中哪个数最大 要代码的 话 你最好把你所说的'来访记录"的 样式发来或者描述一下 可以的 话你还得再详细地说明一下你的问题

VB编程 功能是产生20个0到999的随机整数,放入一个数组中,然后输出这...
Dim arrN(20) As Integer Dim Aver As Single Dim Sum As Integer, i Randomize For i = 1 To 20 arrN(i) = Int(Rnd * 20)Next i Sum = 0 For i = 1 To 20 Sum = Sum + arrN(i)Next i Aver = Sum \/ 20 Print Aver ...

vb中数组问题
数组定义必须遵循两个原则:1.静态数组,指定分量的个数,在程序中可以直接使用各个分量。2.动态数组,用到时,使用开辟语句临时增加分量。你的数组定义时没有指定个数,使用也没有开辟,当然就不对了。

VB题:定义一个具有20个元素的一维数组,并对其随机赋值,然后求出其中...
Dim A(1 To 20) As Single, Sum As Single, Str As String Sum = 0: Str = ""For i = 1 To 20 Randomize A(i) = Int(100 * Rnd + 1)Str = Str & Format(CStr(A(i)), "@@@")If A(i) Mod 2 <> 0 Then Sum = Sum + A(i)Str = Str & " 奇数"End If Str ...

vba如何计算满足条件的数组元素的个数
'假设你已经有了一个数组:arr1 '用字典实现单条件数组元素计数 Set dicN = CreateObject("scripting.dictionary")For j = 1 To UBound(arr1, 1)If Not dicN.exists(arr1(j, 2)) Then dicN.Add arr1(j, 2), 1 Else dicN(arr1(j, 2)) = dicN(arr1(j, 2)) + 1 End If Ne...

某数组有20个元素,分别为1,2,…,20,现在将其第一个元素移到末尾,形成...
只给出核心代码 for i=1 to 19 do t=a[i] a[i]=a[i+1] a[i+1]=tnext i就这样试试

如何在VB的很多个一维数组里找一个字符出现的次数,及在每个一维数组里的...
字符在每个数组只出现一次?如果上面都回答是,可以参照下面的格式写30个循环:'处理数组A for i=0 to UBound(A)if strFind=A(i) then TempStr =TempStr & "A(" & i & ");"nCount = nCount+1 exit for endif next strFind 要查找的字符 nCount 字符总的出现次数 ...

相似回答