VB怎样 随机提取10个数中的5个数存到数组中

供稿:hz-xin.com     日期:2025-01-15
VB随机产生10个任意的两位正整数存放在一维数组中

Option Base 1
Option Explicit
Dim a(11) As Integer

Private Sub Command1_Click()
Dim i As Integer
Picture1.Cls
Picture1.Print "产生的一维数组为:"
Randomize
For i = 1 To 10
a(i) = Int(Rnd * 20 + 10)
Picture1.Print a(i);
Next i
Picture1.Print
End Sub

Private Sub Command2_Click()
Dim max As Integer, p As Integer, i As Integer
For i = 1 To 10
If max < a(i) Then max = a(i)
Next
Picture1.Print "最大值为:" & max
End Sub

Private Sub Command3_Click()
Dim p As Integer, i As Integer, sum As Integer
For i = 1 To 10
sum = sum + a(i)
Next
Picture1.Print "平均值为:" & CStr(sum / 10)
End Sub

Private Sub Command4_Click()
Dim i As Integer, m As Integer, b(10) As Integer, j As Integer

For i = 1 To 10
b(i) = a(i)
Next i
For i = 10 To 1 Step -1
For j = 1 To i - 1
If b(j) > b(j + 1) Then
m = b(j + 1)
b(j + 1) = b(j)
b(j) = m
End If
Next j
Next i
Picture1.Print "数组按从大到小排序:"
For i = 1 To 10
Picture1.Print b(i);
Next
End Sub

Private Sub Command5_Click()
Dim x%, p%, i%
x = Val(InputBox("输入要插入的数据:"))
p = 1
Do While x > a(p) And p <= 10
p = p + 1
Loop
For i = 10 To p Step -1
a(i + 1) = a(i)
Next i
a(p) = x
Picture1.Print
Picture1.Print "插入后的一维数组为:"
For i = 1 To 11
Picture1.Print a(i);
Next i
End Sub

Private Sub form_load() Randomize Show Dim a(1 To 10) As Integer, g(1 To 9) As Integer a(1) = Int(10 + 90 * Rnd) k = 1 ' k在这里用于计数,共取到了k个随机数 Do While k < 10 '做以下循环直到k=10,也就是要取到10个随机数 x = Int(10 + 90 * Rnd) f = 0 '假设x没有重复,f用于标志x是否与以前的随机数相重复,0代表不重复,1代表重复 'If x = a(k) Then f = 1 这句达不到判定是否有重复的数据目的,修改如下 For i = 1 To k If x = a(i) Then f = 1: Exit For '如果x与先前任何一个随机数相同,则设置f=1 Next i If f = 0 Then '如果x与以前的随机数都不同,则增加一个随机数 k = k + 1 a(k) = x End If Loop For j = 1 To 10 Print a(j); If j Mod 10 = 0 Then Print '每输出10个数据就换行 Next j End Sub求采纳

先将这10个数字放在一个数组a(10)中。然后通过随机函数的调用来随机抽取数字。每次抽取一个,若抽取到的数字已被抽取,则进行下一次抽取。这大概就是基本想法吧。
通过代码实现:
Dim a(10) As Integer '存放要抽取的数字。
Dim Fir(5) As Integer '存放抽取到的5个数字的下标,最后改为存该下标的数字。
Dim sec(5) As Integer '存放未被抽取到的5个数字的下标,后改为存数字。
'假设a数组已经赋值,这就不再多写
(手机写的,字数有限制)

Dim x(9) As Integer, a(4) As Integer, b(4) As IntegerDim c(9) As BooleanDim i As Integer, n As Integer, m As IntegerFor i = 1 To 10x(i - 1) = iNexti = 0 Do Until i >= 5Don = Int(Rnd() * 10)Loop Until Not c(n)c(n) = Truei = i + 1Loopm = 0
n = 0For i = 0 To 9If c(i) Thena(m) = x(i)m = m + 1Elseb(n) = x(i)n = n + 1End IfNext'输出看一下。Debug.Print "a:";
For i = 0 To 4
Debug.Print a(i);
Next
Debug.Print ""
Debug.Print "b:";
For i = 0 To 4
Debug.Print b(i);
Next

excel 随机提取10个不重复数据
在B1:B26单元格输入以下公式,按Ctrl+Enter组合键结束 =RAND()在C1单元格输入以下公式,然后向下填充公式 =INDEX(A:A,MATCH(LARGE(B:B,ROW(A1)),B:B,0)

我想随机取出数据库中的5条数据?
你可以先用select * from user取出全部的数据 然后取得rs的最大记录数(rs.recordcount),然后再随机取出1到最大记录数之间的随机5个数(这步应该很简单,不用解释如何做了吧呵呵),然后使用rs.move(你随机的5个数字之一)就可以分别取出5条记录来.这个办法的好处是你的主键id不需要是连续的,而绝大多数...

在Excel中的一列中,随机选出5个数据,不能重复,怎么操作?
因为随机函数是易失性函数,为了固定取得的单词,先在选项的公式选项卡中勾选“启用迭代计算”后确定,以启用循环引用。如图,选择B1:B5,输入公式:=IF(OR(B1="",B1=0,COUNTIF(B$1:B$5,B1)>1),INDEX(A$1:A$10,RANDBETWEEN(1,10)),B1)按Ctrl+Enter两个键,在B1:B5中输入公式。如果5...

用EXCEL在8个指定的数据中任意选出5个
形如下图:A列为制定数据,D列为任意选出的结果。B列为随机数,=RAND()。C列为序列12345...n需要选取几个随机数,n就是几,你的情况n=5.D1=INDEX($A$2:$A$16,MATCH(SMALL($B$2:$B$16,C2),$B$2:$B$16,)),向下复制公式即可。

随机产生至少10个学生的成绩(0~100之间)存入一数组中要求 显示输出这10...
随机产生至少10个学生的成绩(0~100之间)存入一数组中要求 显示输出这10个成绩且每行显示五个如下:随机产生100名学生的成绩,每行输出10个如何编程? 还要放...定义随机函数f 然后定义一个整数变量a 定义一个数组(长度20个数)b 套用随机函数产生整数赋予变量a 比较变量a的值是否在100~1000,是就...

概率问题10个数中取出3个不同数
1,每次随机抽1个数,如果抽完后,不放回去了。至多抽8次必抽到3个数中的1个数。抽1次,抽到ABC之一的概率 = 3\/10 抽2次,抽到ABC之一的概率 = 1 - 7*6\/10^2 = 58\/100 抽3次,抽到ABC之一的概率 = 1 - 7*6*5\/10^3 = 79\/100 抽4次,抽到ABC之一的概率 = 1 - 7*6*5*4...

比如1,3,7,12,13,15,19,20,23,24这10个数字中任选6个组合,VBA函数怎么写...
M = 0 For I1 = 1 To 5 For I2 = I1 + 1 To 6 For I3 = I2 + 1 To 7 For I4 = I3 + 1 To 8 For I5 = I4 + 1 To 9 For I6 = I5 + 1 To 10 M = M + 1 Range("A" & M) = Arr(I1): Range("B" & M) = Arr(I2): Range("C" & M) = Arr(I3...

如何用vb随机从1—50中选5个不重复的数字,还有从1-9中选两个不重复的...
随机从1—50中选5个不重复的数字 dim a,b,c,d,e as integer a=Int((50 - 1 + 1) * Rnd + 1)do while b=a b=Int((50 - 1 + 1) * Rnd + 1)loop do while c=a or c=b c=Int((50 - 1 + 1) * Rnd + 1)loop do while d=a or d=b or d=c d=Int((50 -...

matlab或者C语言产生(1,28)中的5个随机数
代码1:\/\/随即出来的5个数,有可能重复#include<stdio.h>int main(){int num[5];int i;for(i=0;i<5;i++){int temp = rand();while(temp>28||temp<1){temp = rand();}num[i] = temp;printf("%d\\n",num[i]);}}代码2:\/\/随机出来的数,保证不重复!#include<stdio.h>int ...

在EXCEL中,能否实现从1到10十个数中,一次随机选取两个数,要求是不能...
我给你提供一个替代做法,剩下的你应该可以完成了。在第一列(A列)中输入十个人的名子,或1-10十个数字。在第二列(B列)中输入 =RAND() 向下拖至第10行 然后选中这些数据,按B列排序 从上到下。每两个一组就是五组