【求教】数组赋值问题
vb.net吧
全部回复
仅看楼主
level 1
井原_川曦 楼主
Public Class Form1
Dim a%, b%, n%, arrA%(n - 1)
......
Sub Input(ByVal a%, ByVal b%, ByVal n%)
a = Val(TextBox1.Text)
b = Val(TextBox2.Text)
n = Val(TextBox3.Text)
If a Mod 1 <> 0 Or b Mod 1 <> 0 Then
MsgBox("a、b应为整数,请重新输入!")
TextBox1.Text = ""
TextBox2.Text = ""
TextBox1.Focus()
TextBox2.Focus()
End If
If n Mod 4 <> 0 Then
MsgBox("n应为4的倍数,请重新输入!")
TextBox3.Text = ""
TextBox3.Focus()
End If
For i = 0 To n - 1
arrA(i) = Int(Rnd() * (b - a + 1) + a)
Next
End Sub
End Class
写的一个子过程,目的随机产生区间[a,b]中的n个整数(a,b,n分别通过文本框输入,a,b均为整数,n为4的倍数),再赋值给一个数组
但是,运行到arrA(i) = Int(Rnd() * (b - a + 1) + a)这一步的时候总是显示出错,“索引超出了数组界限”,我折腾半天也没弄清楚哪里有问题,请高手帮忙看看,谢谢!
2012年05月20日 05点05分 1
level 1
井原_川曦 楼主
话说...
都没人帮忙吗...
2012年05月20日 09点05分 2
level 12
Dim a%, b%, n%, arrA%(n)
2012年05月20日 09点05分 3
level 12
定义动态数组时 不要用
Dim arrA%(n - 1)
可以先 dim arr() 之后再用redim arr(n - 1)
2012年05月20日 09点05分 4
level 1
井原_川曦 楼主
试过了,有用。非常感谢。
不过这是什么原理呢?
2012年05月20日 13点05分 5
level 12
定义数组时 如果括号内有内容 就会变成固定数量的数组 就是n起不到变量应有的作用
2012年05月21日 01点05分 6
level 1
井原_川曦 楼主
恩恩受教了,谢谢O(∩_∩)O~
2012年05月21日 11点05分 7
1