标题:急问:ASP的一个怪问题....
只看楼主
sass
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2008-5-21
结帖率:100%
 问题点数:0 回复次数:12 
急问:ASP的一个怪问题....
下面的代码,MN如果是具体的字符串就能达到我的预期目的,但如果是数组就不正常,如何解决!?!?!?
目标:在一组数中随机取6个不同的数
<%
MN="06 07 08 09 10 01 02 03 04 05 31 32 33 34 35 12 17 22 27 11 16 21 26"
response.write MN & "<BR>"
k=6
max=23
for i= 1 to k
  do
      Randomize   
      b(i)= Int(Rnd*max)+1
  loop until check3(b(i),i)
 response.write b(i) & "---" & b(i)*2+b(i)-2 & "<BR>"
  bbq=bbq & mid(MN,(b(i)*2)+(b(i)-2),2) & " "
next
Response.Write bbq & "<br>"
function check3(t,n)
   check3=true
   for d=1 to n-1
     if t=b(d) then
      check3=false
     End If
   next
end function
%>
搜索更多相关主题的帖子: quot ASP amp bbq response 
2008-05-21 21:28
sass
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2008-5-21
得分:0 
比如把第二行的MN换成以下代码,就显示不正常了!!!真是怪事!!如何解决?

for a=1 to 23
if len(a)=1 then a="0" & a
ok(a)=a
MN=MN & " " & ok(a)
next
2008-05-21 21:32
live14
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2005-8-19
得分:0 
MN="06 07 08 09 10 01 02 03 04 05 31 32 33 34 35 12 17 22 27 11 16 21 26"
s=split(mn)


    Dim lsNums()
    redim lsNums(6)
   
    Randomize
    k = 0
    Do While k < 6
        aaa = Int(Rnd * ubound(split(mn))) + 1
         If s(aaa) <> "tttttttt" Then
            k = k + 1
           
            lsNums(k) =s(aaa)
             s(aaa) = "tttttttt"
            response.Write(lsNums(k)&"<br>")
         End If         
    Loop

冰冷嘅一場雨,冰冷嘅記憶,轉載係風中嘅思念,成爲咗尋晚,心痛嘅痕跡..
2008-05-21 21:58
live14
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2005-8-19
得分:0 
s换成你定义的数组,那个“ttttt”换成确保不会在这个数组中出现的东西

冰冷嘅一場雨,冰冷嘅記憶,轉載係風中嘅思念,成爲咗尋晚,心痛嘅痕跡..
2008-05-21 21:59
sass
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2008-5-21
得分:0 
[bo]以下是引用 [un]live14[/un] 在 2008-5-21 21:59 的发言:[/bo]

s换成你定义的数组,那个“ttttt”换成确保不会在这个数组中出现的东西


先谢谢你的帮忙,你的代码,单独出来是没有问题,但整合到我的程序中就出现下标超界,我再修改后,虽然不出错了,但一个数都随机不出来了!!!真是搞到头大,近两年多没有玩编程,脑子不好使了....
2008-05-21 23:10
google
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:3418
专家分:23
注 册:2005-11-1
得分:0 
MN="06 07 08 09 10 01 02 03 04 05 31 32 33 34 35 12 17 22 27 11 16 21 26"
s=split(mn)


    Dim lsNums()
    redim lsNums(6)
   
    Randomize
    k = 0
    Do While k < 6
        aaa = Int(Rnd * ubound(s)) + 1
         If s(aaa) <> "tttttttt" Then
            k = k + 1
           
            lsNums(k) =s(aaa)
             s(aaa) = "tttttttt"
            response.Write(lsNums(k)&"<br>")
         End If         
    Loop

祝天下所有母亲幸福安康!~
2008-05-21 23:20
google
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:3418
专家分:23
注 册:2005-11-1
得分:0 
aaa = Int(Rnd * ubound(s)) + 1
这句话注意一下,也就是你自己定义数组的维数,

如果你的数组名字是S的话,改了上面的的代码后应该不会出现问题

祝天下所有母亲幸福安康!~
2008-05-21 23:21
sass
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2008-5-21
得分:0 
[bo]以下是引用 [un]google[/un] 在 2008-5-21 23:20 的发言:[/bo]

MN="06 07 08 09 10 01 02 03 04 05 31 32 33 34 35 12 17 22 27 11 16 21 26"
s=split(mn)


    Dim lsNums()
    redim lsNums(6)
   
    Randomize
    k = 0
    Do While k < 6
        aaa = Int(Rnd * u ...


你的代码单独运行也没有问题,但整合到我的程序中还是有问题,取得的数数量次次不同(按代码应该每次都可以选出6个数,但我现在就是有时2个,有时3个,有时4个.....)
2008-05-21 23:25
hxfly
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:5807
专家分:108
注 册:2005-4-7
得分:0 
.....
不会吧?

2008-05-21 23:32
hxfly
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:5807
专家分:108
注 册:2005-4-7
得分:0 
给出你数组的名字和数组的内容

2008-05-21 23:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-215520-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.629690 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved