vb 中设 a = 5,b = 13,则执行 c = Int((b-a)* Rnd + a) + 1后,c的范围为6~1

铭豆小猪2022-10-04 11:39:541条回答

vb 中设 a = 5,b = 13,则执行 c = Int((b-a)* Rnd + a) + 1后,c的范围为6~14.为什么?
为什么不是6~13呢,14难道可以取到么?

已提交,审核后显示!提交回复

共1条回复
蓼红苇白 共回答了22个问题 | 采纳率95.5%
6~14是前包后开的区间[6,14).
也就是说是大于等于6,小于14
1年前

相关推荐

vb 中设 a = 5,b = 10,则执行 c = Int((b-a)* Rnd + a) + 1后,c的值为
3vicinity1年前2
黑马频出 共回答了16个问题 | 采纳率93.8%
C的结果是在6-10间的整数
b-a=5
Rnd为0-1的小数,包括0但不包括1
因此(b-a)*Rnd的范围为0-5,包括0,但不包括5.
所以((b-a)* Rnd + a的范围是5-10,包括5,但不包括10.
最后Int((b-a)* Rnd + a) + 1的范围是6-11间的整数,包括6,但不包括11,因此其结果只能是6,7,8,9,10.运行结果如图:

程序还是你的,只是加上随机数的初始化,这个很重要!
Private Sub Command1_Click()
Randomize
a = 5
b = 10
c = Int((b - a) * Rnd + a) + 1
Print c
End Sub

大家在问