在vb中什么函数可以计算一个vb一维数组冒泡原下标的下标

在vb中什么函数可以计算一个数组的下标_vb吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:108,485贴子:
在vb中什么函数可以计算一个数组的下标收藏
知道有LBound和UBound,但这两个函数只是计算的最小下标值和最大下标值,我的意思是比如有一个4*4的数组A(1 to 4,1 to 4),现在要计算A(3,2)的下标,也就是怎么能把3和2算出来?求教……谢啦!!!
通用软件不合适,定做软件太昂贵,自己用vb.net开发太难,何不试试FoxTable?
lboun(数组名,维序号)
A(3,2) '3和2就是下标,你都已经指定了这一个下标还计算哪个下标呀?
只有算法和代码,没有函数的说法。用两个变量代替它们,再用循环,就可以进行一系列的过程。
我的意思是我写一个子函数,子函数是对一个数组其中的一个元素进行运算的。比如FunctionOrder A(i,j),但是数组进行传递时,要么是一整个数组,或者是其中一个很明确的元素,比如A(3,2)。但是我想传递的是不是一个很明确的元素,是其中的某些元素,求教……
i,j不就是你要的吗
可以用数组和下标作为参数,比如说Private Function fun(arr() As Long, i As Long, j As Long) As Long
fun = arr(i, j)End Function
如果不想把整个数组传进去可以在函数声时的括号内使用不定数量的可选参数
Ubound(A,1)=3Ubound(A,2)=23属于第1维,2属于第二维。
Private Sub Form_Load()Dim a(3, 6)Debug.Print "+++"Debug.Print UBound(a, 1)Debug.Print UBound(a, 2)Debug.Print "---"End Sub
猎聘网,专为经理人提供500强企业高薪职位,实时发布vb招聘信息.让经理人求职快速高效,圆您高薪梦!
想法很好,但是i和j怎么测出来,我问的就是这个意思,有没有那个函数可以把i和j测出来?
你的意思是不是,把多个数组元素以及他们的下标传递给一个函数?如果是,可以如此声明:Private Function fun(arr() As Long, i() As Long, j() As Long) As LongEnd Functionarr 是要传递的元素组成的数组,i跟j是两个数组,分别存放每个元素的第1个下标和第2个下标
调用函数要指明哪些元素要传递,那 i 跟 j 都知道啊
最大ubound,最小lbound
对,我就是这个意思,比如我要传递一个数组中的元素,但是我不知道具体是哪几个(符合条件的传递,不符合就不传递),这是就要计算出元素的下标了,也就是i和j,但我不知道怎么算出来?求教……
嗯,嗯,这我也知道,关键是我求的不是最大值与最小值。我的意思是我随便给个数组中的元素,怎么能把这个元素的下标给算出来?
SafeArrayGetDim Lib "oleaut32.dll" ( psa
SafeArrayPtrOfIndex Lib "oleaut32.dll" ( psa
, rgIndices
CopyMemoryArr Lib "kernel32.dll" Alias "RtlMoveMemory" ( Dest
Command1_Click()   a(4, 4)
'一个5*5数组,和一个用来存储下标的数组   i
   i = 0
(a, 1)     j = 0
(a, 2)       GetIndex(a, a(i, j), ret)
'调用函数寻找下标         ret(0) & ","; ret(1) & "&#160&#160&#160&#160";               "Not&#160Found!";            j     '换行   i '*****************************************************************'【GetIndex】'获取数组中某个元素的下标'【参数】'Arr:元素所在数组'Element:某个元素(注:这里必须传递引用,不可以用ByVal)'Index:传入一个数组,用于存储找到的下标'【返回值】'找到返回True,否则返回False'*****************************************************************
GetIndex(Arr()
  'arrPtr:数组指针,dims:数组维数,pData:元素指针   arrPtr
  'i:循环变量,carry:进位标记   i
  '取得数组维数  CopyMemoryArr arrPtr, Arr, 4  dims = SafeArrayGetDim(arrPtr)   Index(dims - 1)
      '取得某个下标处元素的指针    SafeArrayPtrOfIndex arrPtr, Index(0), pData    '与传入的元素的指针比较     pData = VarPtr()       GetIndex =                 '数组下标加1    Index(dims - 1) = Index(dims - 1) + 1    '检查下标是否溢出    carry = 0     i = dims - 1
1      Index(i) = Index(i) + carry       Index(i) & (Arr, i + 1)         Index(i) = 0        carry = 1            i    '最高位单独处理,防止被清0    Index(0) = Index(0) + carry    '检查是否搜索完毕,退出循环     Index(0) & (Arr, 1)
    GetIndex =
牛!!!佩服,佩服!谢啦!
登录百度帐号vb中计算任意一位数组元素个数的公式是_百度知道
vb中计算任意一位数组元素个数的公式是
vb中计算任意一位数组元素个数的公式是
我有更好的答案
对于一维数组a元素个数为 UBound(a)-LBound(a)+1
例如:Private Sub Command1_Click()Dim a(5) As IntegerDebug.Print LBound(a), UBound(a)End Sub
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。扫二维码下载作业帮
3亿+用户的选择
下载作业帮安装包
扫二维码下载作业帮
3亿+用户的选择
VB计算数组中相同数字的个数VB一维数组a(14)中,有一串不规则的数字,例如3 5 8 1 3 2 4 5 6 6 5 4 1 3 2 ,如何能计算出有多少个相同的数字?print
有2个1以此类推…求高手解答,小弟不胜感激
作业帮用户
扫二维码下载作业帮
3亿+用户的选择
Dim a(14) As IntegerDim b(10) As IntegerPrivate Sub Command1_Click()For i = 1 To 14a(i) = Int(100 * Rnd()) ‘这里产生100以内的随机数,如要个位数,改成10Print a(i);Next iPrintFor i = 1 To 14x = a(i)Doj = a(i) Mod 10b(j) = b(j) + 1x = x \ 10Loop Until x = 0Next iFor i = 0 To 9If b(i) > 0 Then Print "有"; b(i); "个"; iNext iEnd 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
d(j, 1) = a(i)
d(j, 2) = 1
这一段不太懂,能加个注释吗?
说明: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,表示又一次找到的相同的数字
'既然找到了,内循环可以结束了
'这是对应d()数组的第一维等于初始化的值 -9999
d(j, 1) = a(i)
'要这样理解,会运行到这里是基于:这个a(i)是第一次出现
d(j, 2) = 1
'这就是第一次出现的赋值
为您推荐:
其他类似问题
扫描下载二维码js求,取数组下标函数
[问题点数:40分,结帖人dnpao]
js求,取数组下标函数
[问题点数:40分,结帖人dnpao]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2018年3月 总版技术专家分月排行榜第一2013年5月 总版技术专家分月排行榜第一
2018年4月 总版技术专家分月排行榜第二2016年7月 总版技术专家分月排行榜第二2016年3月 总版技术专家分月排行榜第二2015年12月 总版技术专家分月排行榜第二2014年8月 总版技术专家分月排行榜第二2014年7月 总版技术专家分月排行榜第二2013年6月 总版技术专家分月排行榜第二
2018年3月 总版技术专家分月排行榜第一2013年5月 总版技术专家分月排行榜第一
2018年4月 总版技术专家分月排行榜第二2016年7月 总版技术专家分月排行榜第二2016年3月 总版技术专家分月排行榜第二2015年12月 总版技术专家分月排行榜第二2014年8月 总版技术专家分月排行榜第二2014年7月 总版技术专家分月排行榜第二2013年6月 总版技术专家分月排行榜第二
2017年10月 PHP大版内专家分月排行榜第一2017年9月 PHP大版内专家分月排行榜第一2017年8月 PHP大版内专家分月排行榜第一
2017年11月 PHP大版内专家分月排行榜第二2017年9月 其他数据库开发大版内专家分月排行榜第二2011年5月 Web 开发大版内专家分月排行榜第二2011年4月 Web 开发大版内专家分月排行榜第二
2017年1月 总版技术专家分月排行榜第三
2017年2月 PHP大版内专家分月排行榜第一2017年1月 PHP大版内专家分月排行榜第一
匿名用户不能发表回复!|vb数组、标准函数及程序题_百度文库
赠送免券下载特权
10W篇文档免费专享
部分付费文档8折起
每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
vb数组、标准函数及程序题
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
你可能喜欢}

我要回帖

更多关于 vb数组下标越界 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信