【vb 数组】VB计算数组中相同数字的个数VB一维数组a(14)中有...
答案:2 悬赏:20 手机版
解决时间 2021-02-09 19:33
- 提问者网友:鐵馬踏冰河
- 2021-02-09 03:52
【vb 数组】VB计算数组中相同数字的个数VB一维数组a(14)中有...
最佳答案
- 五星知识达人网友:归鹤鸣
- 2021-02-09 04:19
【答案】 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
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
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
全部回答
- 1楼网友:街头电车
- 2021-02-09 05:46
正好我需要
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯