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
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)这一步的时候总是显示出错,“索引超出了数组界限”,我折腾半天也没弄清楚哪里有问题,请高手帮忙看看,谢谢!