找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 7396|回复: 5

统计数组元素个数的自定义函数CountArray

  [复制链接]

1214

主题

352

回帖

11

精华

管理员

菜鸟

积分
93755

贡献奖关注奖人气王精英奖乐于助人勋章

发表于 2011-10-10 14:42:35 | 显示全部楼层 |阅读模式

  1. '本函数由阿杰编写于:2011.10.10
  2. Function CountArray(数组名)
  3. Dim i, s
  4.     For Each i In 数组名
  5.         s = s + 1
  6.     Next
  7.     CountArray = s
  8. End Function

复制代码
例子:

  1. Dim A(-5 To 8) As Integer
  2.     Debug.Print CountArray(A)
  3.    
  4.     'Dim A(1 To 6, 6) As String定义的数组包含的元素个数是( )。
  5.     'A. 36
  6.     'B. 49
  7.     'C. 42
  8.     'D. 50
  9.     '最佳答案 C
  10.     '这个应该是VB或者VB.net的语法
  11.     'VB中数组在无特殊声明情况下从0开始
  12.     '所以Dim A(1 To 6, 6) As String可翻译为Dim A(1 To 6, 0 To 6) As String
  13.     '及一个二维字符型数组,第一维下标从1到6共6个,第二维从0到6共7个
  14.     '所以元素个数 = 6 * 7 = 42
  15.     Dim A2(1 To 6, 6) As String
  16.     Debug.Print CountArray(A2)
  17.    
  18.     Dim A3(6 To 61, 8) As String
  19.     Debug.Print CountArray(A3)
  20.    
  21.     Dim A4(-5 To 8)
  22.     Debug.Print CountArray(A4)
  23.    
  24.     Dim a5(-1 To 1, 3)
  25.     Debug.Print CountArray(a5)

复制代码
【VB】QQ群:1422505加的请打上VB好友
【易语言】QQ群:9531809  或 177048
【FOXPRO】QQ群:6580324  或 33659603
【C/C++/VC】QQ群:3777552
【NiceBasic】QQ群:3703755

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36130
发表于 2011-10-11 00:24:50 | 显示全部楼层
不错!

21

主题

162

回帖

4

精华

论坛元老

Tokyo-Hot

积分
5945
QQ
发表于 2011-10-13 21:38:14 | 显示全部楼层
貌似有LBound和UBound函数 直接获取上限和下限 上限-下限+1 就是数组元素个数了...
洗澡脱光衣服打开水才发现自己没带洗发水没带沐浴乳只带了一包洗衣粉 心酸的用洗衣粉把自己搓了一遍... ...

1214

主题

352

回帖

11

精华

管理员

菜鸟

积分
93755

贡献奖关注奖人气王精英奖乐于助人勋章

 楼主| 发表于 2011-10-14 09:19:17 | 显示全部楼层
不错 LBound 和 UBound 是取下标和上标的不是数组元素个数
你试下下面的代码就知道了
Dim A(-5 To 8) As Integer
    Debug.Print LBound(A), UBound(A)

结果显示:-5 8

如果用    Debug.Print CountArray(A)
结果显示 14   表示A数组有14个元素
【VB】QQ群:1422505加的请打上VB好友
【易语言】QQ群:9531809  或 177048
【FOXPRO】QQ群:6580324  或 33659603
【C/C++/VC】QQ群:3777552
【NiceBasic】QQ群:3703755

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36130
发表于 2011-10-14 18:39:35 | 显示全部楼层
那就直接:
abs(LBound(A)) + abs(UBound(A)) + 1

0

主题

53

回帖

0

精华

铜牌会员

积分
165
发表于 2012-8-1 16:58:13 | 显示全部楼层
Ubound(A) - LBound(A) + 1
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表