vb程序提示下标越界, 提示是这里出错 myarray(p) = myarray(j), 可是我又不知道怎么改,求高手指点! 5

OptionExplicitOptionBase1PrivateSubCommand1_Click()Dimmyarray(7)AsIntegerDimi%Fori=1T... Option Explicit
Option Base 1
Private Sub Command1_Click()
Dim myarray(7) As Integer
Dim i%
For i = 1 To 7
myarray(i) = Rnd() * 30
Print myarray(i)
Next i
Print
Dim j%, tmp%, p%
For i = 1 To 7
p = i
For j = i + 1 To 7
If myarray(j) < myarray(i) Then
p = j
End If
Next j
If p <> i Then
tmp = myarray(p)
myarray(p) = myarray(j)
myarray(j) = tmp
End If
For j = 1 To 7
Print myarray(j)
Next j
Print
Next i
End Sub
展开
 我来答
百度网友f7fee79f7
2013-05-17
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
myarray(p) = myarray(j)
这里应该是
myarray(p) = myarray(i)吧
下一句myarray(j) = tmp
也应该是myarray(i) = tmp
看程序好象是要进行排序,这里的赋值是交换两个数的位置,但是这里应该是将i,p位置互换,因为j在上一个For循环中,已经被连续增长赋值为8,所以会报下标越界。
另外,感觉这个排序过程好象有点问题,等程序能运行时你试试看对不对。
孤辰雨bV
2013-05-17
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
给数组定义那句7改成8
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式