取一个整数数组

fengyepiaoling 2004-12-28 01:13:44
我想要取一个整数数组,其中包含4-8个小于8的整数,并且不要重复的数字,我用以下函数不能避免重复数字的出现,请问有什么好办法能实现预想的要求。我用的是VB6.0

Private Function goodsNumber()
Dim goodsCount as Integer
Dim goods() as Integer
Randomize
goodsCount=Int(4*rnd())+3
Redim goods(goodsCount)
For i=0 To goodsCount
goods(i)=Int(8*Rnd())
Next
goodsNumber = goods
End Function


...全文
115 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
QQ1368065 2004-12-28
  • 打赏
  • 举报
回复
你说得对,那就用组吧
fanzai 2004-12-28
  • 打赏
  • 举报
回复
另外,其实字符串的操作(&相加、mid,left,right取子串)都隐含有相当多的循环操作,只是隐含由系统完成了。

不过字符串这个方法的确很高!呵呵!学习!
fanzai 2004-12-28
  • 打赏
  • 举报
回复
QQ1368065(桃花依旧) 高!
:)
QQ1368065 2004-12-28
  • 打赏
  • 举报
回复
fanzai(帆仔) ,你太多循环了,增加运算时间
QQ1368065 2004-12-28
  • 打赏
  • 举报
回复
调试过的
QQ1368065 2004-12-28
  • 打赏
  • 举报
回复
行了,完结编

Dim vstr As String
Dim goodsCount As Integer
Dim goods() As Integer
Randomize
vstr = "1234567"
goodsCount = Int(3 * Rnd()) + 4
Randomize
ReDim goods(goodsCount - 1)
i = 0
Do
Randomize
j = Int((Len(vstr) - 1) * Rnd()) + 1
goods(i) = Mid(vstr, j, 1)
vstr = Left(vstr, j - 1) & Right(vstr, Len(vstr) - j)
i = i + 1
Loop Until i >= goodsCount
fanzai 2004-12-28
  • 打赏
  • 举报
回复
Private Function goodsNumber()
Dim goodsCount As Integer
Dim goods() As Integer
Dim used(8) As Boolean

Randomize
goodsCount = Int(4 * Rnd()) + 3
ReDim goods(goodsCount)

For i = 0 To goodsCount
goods(i) = Int((8 - i) * Rnd())
j = 0
Do While j <= goods(i)
If used(j) Then goods(i) = goods(i) + 1
j = j + 1
Loop
used(goods(i)) = True
Next

goodsNumber = goods
End Function
QQ1368065 2004-12-28
  • 打赏
  • 举报
回复
再修改一下:

Private Function goodsNumber()
dim vstr as string
Dim goodsCount as Integer
Dim goods() as Integer
Randomize
vstr="12345678"
vstr=mid(vstr,Int(3*rnd()),Int(4*rnd())+3)
goodsCount =len(vstr)
Randomize
redim goods(goodsCount)
do
i=Int(len(vstr)*rnd())
goods(i)= mid(vstr ,i,1)
vstr=left(vstr,i-1) & right(vstr,len(vstr)-i)
loop until vstr=""
goodsNumber = goods
End Function
QQ1368065 2004-12-28
  • 打赏
  • 举报
回复
没有调试过,意思是说列出一列数字,用随机去选择某一个数字,再比那个数字去掉,就不会有重复的了
QQ1368065 2004-12-28
  • 打赏
  • 举报
回复
Private Function goodsNumber()
dim vstr as string
Dim goodsCount as Integer
Dim goods() as Integer
Randomize
vstr="12345678"
vstr=mid(vstr,Int(3*rnd()),Int(4*rnd())+3)
goodsCount =len(vstr)
Randomize
redim goods(goodsCount)
do
i=Int(goodscount*rnd())
goods(i)= mid(vstr ,i,1)
vstr=left(vstr,i) & right(vstr,len(vstr)-i)
loop until vstr=""
goodsNumber = goods
End Function

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧