题目
VB如何统计二维数组中相同元素的个数?
比如:
A(1,1)=2
A(1,2)=3a
A(2,1)=11
A(2,2)=5
A(3,1)=34
A(3,2)=11t
A(4,1)=55
A(4,2)=3a
A(5,1)=57
A(5,2)=11t
A(6,1)=72
A(6,2)=3a
统计后形成(注意按b(i,1)的大小升序排列)
B(1,1)=3a
B(1,2)=3个
B(2,1)=5
B(2,2)=1个
B(3,1)=11t
B(3,2)=2个
比如:
A(1,1)=2
A(1,2)=3a
A(2,1)=11
A(2,2)=5
A(3,1)=34
A(3,2)=11t
A(4,1)=55
A(4,2)=3a
A(5,1)=57
A(5,2)=11t
A(6,1)=72
A(6,2)=3a
统计后形成(注意按b(i,1)的大小升序排列)
B(1,1)=3a
B(1,2)=3个
B(2,1)=5
B(2,2)=1个
B(3,1)=11t
B(3,2)=2个
提问时间:2021-03-25
答案
Private Sub Command1_Click()
Dim a(),b(),blnFlag As Boolean,F%
Dim i%,j%,k%
ReDim a(1 To 6,1 To 2)
a(1,1) = "2"
a(1,2) = "3a"
a(2,1) = "11"
a(2,2) = "5"
a(3,1) = "34"
a(3,2) = "11t"
a(4,1) = "55"
a(4,2) = "3a"
a(5,1) = "57"
a(5,2) = "11t"
a(6,1) = "72"
a(6,2) = "3a"
ReDim b(1 To 2,1 To 1) ' B(1,1)=3a B(2,1)=3个
b(1,UBound(b,2)) = "" ' a(LBound(a,1),LBound(a,2))
For i = LBound(a,1) To UBound(a,1)
For j = LBound(a,2) To UBound(a,2)
blnFlag = False
For k = LBound(b,2) To UBound(b,2)
If a(i,j) = b(1,k) Then blnFlag = True:Exit For
Next
If blnFlag Then
b(2,k) = b(2,k) + 1
Else
b(1,UBound(b,2)) = a(i,j)
b(2,UBound(b,2)) = 1
ReDim Preserve b(1 To 2,LBound(b,2) To UBound(b,2) + 1) '保留原值重定义数组
b(1,UBound(b,2)) = ""
b(2,UBound(b,2)) = 0
End If
Next
Next
For k = LBound(b,2) To UBound(b,2)
Print b(1,k),b(2,k)
Next
End Sub
'b 数组中二维下标的位置换了一下,以便于 保留原值重定义数组 而不出错!
Dim a(),b(),blnFlag As Boolean,F%
Dim i%,j%,k%
ReDim a(1 To 6,1 To 2)
a(1,1) = "2"
a(1,2) = "3a"
a(2,1) = "11"
a(2,2) = "5"
a(3,1) = "34"
a(3,2) = "11t"
a(4,1) = "55"
a(4,2) = "3a"
a(5,1) = "57"
a(5,2) = "11t"
a(6,1) = "72"
a(6,2) = "3a"
ReDim b(1 To 2,1 To 1) ' B(1,1)=3a B(2,1)=3个
b(1,UBound(b,2)) = "" ' a(LBound(a,1),LBound(a,2))
For i = LBound(a,1) To UBound(a,1)
For j = LBound(a,2) To UBound(a,2)
blnFlag = False
For k = LBound(b,2) To UBound(b,2)
If a(i,j) = b(1,k) Then blnFlag = True:Exit For
Next
If blnFlag Then
b(2,k) = b(2,k) + 1
Else
b(1,UBound(b,2)) = a(i,j)
b(2,UBound(b,2)) = 1
ReDim Preserve b(1 To 2,LBound(b,2) To UBound(b,2) + 1) '保留原值重定义数组
b(1,UBound(b,2)) = ""
b(2,UBound(b,2)) = 0
End If
Next
Next
For k = LBound(b,2) To UBound(b,2)
Print b(1,k),b(2,k)
Next
End Sub
'b 数组中二维下标的位置换了一下,以便于 保留原值重定义数组 而不出错!
举一反三
已知函数f(x)=x,g(x)=alnx,a∈R.若曲线y=f(x)与曲线y=g(x)相交,且在交点处有相同的切线,求a的值和该切线方程.
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
奥巴马演讲不用看稿子.为什么中国领导演讲要看?
想找英语初三上学期的首字母填空练习……
英语翻译
最新试题
热门考点
- 1急求被2、3、5、7、9、11、13、17、19整除的规律!
- 2证明植物呼吸实验时,为什要把植物外表的水分吸干
- 3cosx-Cosy等于什么
- 4用英语写的新学期计划
- 5地球越往内温度越高地下的石油为什么没有着火
- 6读图,回答24-25题. 2012年6月1 8日,“神舟九号“飞船与“天宫一号”自动交会对接成功.这一天,地球最接近公转轨道上的位置是( ) A.① B.② C.③ D.④
- 7有五个连续的自然数,他们的和可以表示成两个都大于5的连续奇数的积,那么这五个连续自然数中最小的那个数
- 8一道很简单的数学题,生活常识
- 9已知如图,动点P在反比例函数y=-2/x(x
- 10“如果生命是水,尊严就是动力.如果生命是火,尊严就是燃烧”仿句