rnd()函数的功能就是产生一个(0~1)之间的单精度随机数,故rnd()*10的范围为(0~10)之间的单精度随机数。
Sub PR()
Randomize
Dim a (10) '定义一个下标为0~10的数组
For j=1 to 10 '循环,将数组下标为1~10的元素赋值
a(j)=Int(Rnd()*100)'随机产生一个小于100的整数
If a(j) Mod 5 = 0 Then k=k+1 '判断,如果随机数能被5整除,记录
Print a(j) '输出随机数
next j
print
print k/10 '输出比例
End sub
其中第一个要填的空前面的a(i)应该改成a(j)
问题到底是那一个?都给你回答:
1)假设rnd范围在[0,1)之间,那么10*rnd的范围必然在[0,10)之间(取整数在0~9之间)。
2)val("123.4")是把字符串转变成双精度浮点型数字的,后来用str又转换回来变成字符串的“123.4”;再次给求长度,为5.
在vb中,非0的数字都是true(布尔类型)。因此选择a
Rnd*10
rnd是【0,10)即包括0,但不包括10
所以rnd*10【0,100)即包括0,但不包括100
int(rnd*10)就是【0,99】的整数
后面的程序,就依此类推。
1.(rnd(1)*100)
2.a(i)mod 5==0
int 它的作用是取整!RND(1)所产生的数字是(0-1)之间的数字 ,所以乘以100,再一取整就是1-99的整数
a(i)mod 5==0就是求余,如果能求余能为0,就是5的倍数