例:
854112232
435345435
534223626
467547865
473743777
274388775
474578547
598258558
这样的一组数字,怎么用VB计算它们这一组数字的第一位\第二位\第三位\第四位\....出现最多的数字.比如说上面八组数字,第一位出现最多的是"4",第二位出现最多的数字是"7",依次推类.请各位大哥给予指点,小弟感激不尽!!!!
854112232
435345435
534223626
467547865
473743777
274388775
474578547
598258558
这样的一组数字,怎么用VB计算它们这一组数字的第一位\第二位\第三位\第四位\....出现最多的数字.比如说上面八组数字,第一位出现最多的是"4",第二位出现最多的数字是"7",依次推类.请各位大哥给予指点,小弟感激不尽!!!!
这样就可以用MID函数来直接获得任意一位上的数字,然后将获得的该位数字放到一个数组中,然后再用一个数字来存放每个数字出现的次数(因为从0到9,因此这个数组只要10个元素就够了)最后对这个数组排续就可以得知出现最多的数字了.
总结如下:1:获得每个数字的指定位的数字(如果是数字类型存放可以用除法+MOD得到该位数字,用字符串类型存放则可以用MID获得指定位数字)2:统计每个数字出现的频率(用一个0-9,一共10个元素的数组来存放每个数字的出现次数)3:将第2步中的统计数组排续,得到出现频率最高的那个数字就是这个思路了
Dim str(7) As String
Dim intNum(9) As Integer
Private Sub Command1_Click()
str(0) = "854112232"
str(1) = "435345435"
str(2) = "534223626"
str(3) = "467547865"
str(4) = "473743777"
str(5) = "274388775"
str(6) = "474578547"
str(7) = "598258558" Dim intStart As Integer
intStart = 1 'Start char
Call SumNo(intStart) Dim intLoop As Integer
Dim intMax As Integer
Dim intIndex As Integer
'/initial
intMax = intNum(0)
intIndex = 0
For intLoop = 0 To 9
If intMax < intNum(intLoop) Then
intMax = intNum(intLoop)
intIndex = intLoop
End If
Next
MsgBox intIndex
End SubPrivate Sub SumNo(BitNO As Integer)
Dim strXx As String * 1
Dim intLoop As Integer
For intLoop = 0 To 7
strXx = Mid$(str(intLoop), BitNO, 1)
intNum(strXx) = intNum(strXx) + 1
Next
End Sub