如何用VB编写一个将数字1到8随机排序的程序?

来自:    更新日期:早些时候
怎么用VB编写一个将数字1到8随机排序的程序?~

先把1到8放到数组里
然后用random函数(1-8) 随机取1个数
然后放到另一个数组的第一个
然后把第一个数组的最后一个数移动到随机数的那个地址
然后重复


你这样也行 程序能用就行 没固定方法

在窗体里添加label1和按钮command1,然后粘贴以下代码。以下代码实现了1-8八个数随机不重复排序。如果数字可以重复的话,更简单些。

Dim flag(8) As Integer, InitNum(8) As Integer, Num(8) As Integer
Dim i As Integer, j As Integer
Private Sub Command1_Click()
For i = 0 To 7
flag(i) = 0
Next i

i = 0
Do
j = Int(Rnd() * 8)
If flag(j) = 0 Then
Num(i) = InitNum(j)
flag(j) = 1
i = i + 1
End If

Loop Until i = 8

Label1.Caption = ""
For i = 0 To 7
Label1.Caption = Label1.Caption & Num(i)
Next i

End Sub

Private Sub Form_Load()
Randomize
For i = 0 To 7
InitNum(i) = i + 1
Next i
End Sub

在窗体里添加label1和按钮command1,然后粘贴以下代码。以下代码实现了1-8八个数随机不重复排序。如果数字可以重复的话,更简单些。

Dim flag(8) As Integer, InitNum(8) As Integer, Num(8) As Integer
Dim i As Integer, j As Integer
Private Sub Command1_Click()
For i = 0 To 7 '为各个数加个标志,flag=1就表示这个数已经被随机取出
flag(i) = 0
Next i

i = 0
Do
j = Int(Rnd() * 8) '随机从8个数中取,但是可能取到重复的
If flag(j) = 0 Then ' 这里根据标志flag判定,这个数是否已经取过,0就是没取过
Num(i) = InitNum(j) '追加到结果数组中
flag(j) = 1 '给这个数加上获取标记,下次就会跳过这个数
i = i + 1 '为下次存放做准备
End If

Loop Until i = 8

Label1.Caption = ""
For i = 0 To 7
Label1.Caption = Label1.Caption & Num(i) '将结果显示在标签中
Next i

End Sub

Private Sub Form_Load()
Randomize
For i = 0 To 7
InitNum(i) = i + 1 '1到8的数放在数组initnum中
Next i
End Sub

'程序各部分已经做了解释,不懂的可以给我留言

添加一个按钮Command1
然后添加如下代码,运行后点击按钮就出来了。我相信你很容易理解这代码。
Private Sub Command1_Click()
Dim i As Integer, s As String
For i = 1 To 8
Randomize ’初始化随机数发生器
s = s & Int(Rnd * 8) + 1 & ","
Next i
Print s
End Sub
兄弟,不好意思,我理解错了。给你补上。是要数组,代码如下
Private Sub Command1_Click()
Me.Cls
Dim i, j As Integer, S(1 To 8) As Integer '声名
Randomize '初始化随机数
i = 1
Do While (i <= 8) '这是Do循环,循环条件是i<=8
bo = False
S(i) = Int(Rnd * 8 + 1) '随机从8个数中取一个数,可能会取到重复的。
For j = 1 To i - 1 '检查先前有没有重复的
If S(j) = S(i) Then '找到重复的数,则跳到A位置
GoTo A '跳到A位置
End If
Next j

Print S(i) '如果上面一直没找到重复的数,则会执行打印
i = i + 1
A:
Loop
End Sub

Private Sub Command2_Click()
Dim i As Integer, j As Integer, tmp As Integer, a1(8) As Integer, flag As Integer
i = 1
Randomize
While (i <= 8)
tmp = Rnd() * 8
For j = 1 To 8
If a1(j) = tmp Then
flag = 0
Exit For
End If
flag = 1
Next
If flag = 1 Then
a1(i) = tmp
i = i + 1
End If
Wend
For i = 1 To 8
Print Str(a1(i))
Next
End Sub

num(1)=x1
num(2)=x2
num(3)=X3
num(4)=X4
num(5)=X5
num(6)=x6
num(7)=x4
num(8)=x8

for i=1 to 7
for j=i+1 to 7
if num(i)<num(j) then
x=num(j)
num(j)=num(i)
num(i)=x
end if
next
next
X1~8是你的随机8个数

Private Sub Command1_Click()
Dim myStr As String, myOutput As String, myTemp As String, a As Integer
myStr = "12345678"
Randomize (Timer)
Do Until myStr = ""
a = Int(Rnd * Len(myStr)) + 1
myTemp = Mid(myStr, a, 1)
myOutput = myOutput & myTemp
myStr = Replace(myStr, myTemp, "")
Loop
Print myOutput
End Sub


如何用VB编写一个将数字1到8随机排序的程序?视频

相关评论:
  • 17594838044如何用VB编写一个将数字1到8随机排序的程序?
    娄子欢在窗体里添加label1和按钮command1,然后粘贴以下代码。以下代码实现了1-8八个数随机不重复排序。如果数字可以重复的话,更简单些。Dim flag(8) As Integer, InitNum(8) As Integer, Num(8) As Integer Dim i As Integer, j As Integer Private Sub Command1_Click()For i = 0 To 7 '为...

  • 17594838044用VB程序将1到25的自然数依次赋值给5*5的二维数组并且输出数组的下三...
    娄子欢代码如下:Private Sub Command1_Click()Dim a(1 To 6, 1 To 6) As IntegerFor i = 1 To 5For j = 1 To 5tmp = 99If i < tmp Thentmp = iEnd IfIf j < tmp Thentmp = jEnd IfIf 6 - i < tmp Thentmp = 6 - iEnd IfIf 6 - j < tmp Thentmp = 6 - jEnd Ifa(i...

  • 17594838044请教:我想对text1中的数字进行从小到大排序,用vb怎样写?
    娄子欢再添加一个按钮command2 Private Sub Command2_Click()dim a$(),i%,j%,n a=split(text1," ")n=ubound(a)for i=0 to n-1 for j=i+1 to n if a(i)>a(j) then t=a(i):a(i)=a(j):a(j)=t next j next i text1=""for i=0 to n text1=text1 & a(i) & " ...

  • 17594838044VB中怎样写1--30数字随机产生7个数字
    娄子欢a(i)=int(rnd*30+1)print a(i)next i 如果要30个数字都不一样就要用randomize在首句 切记定义类型

  • 17594838044利用VB制作一个“随机生成十个数字(1-100之间的整数)求极值(最大最小...
    娄子欢代码:Dim max, min As IntegerDim avg As DoublePrivate Sub Command1_Click()Dim num(10) As IntegerText1.Text = ""Label4.Caption = ""Label5.Caption = ""Label6.Caption = ""Dim i, j, temp, sum As Integersum = 0For i = 1 To 10num(i) = Int(Rnd * (100 + 1))sum...

  • 17594838044VB中怎样写1--30数字随机产生7个数字
    娄子欢dim i as integer dim a(i)as integer for i=1 to 7 a(i)=int(rnd*30+1)print a(i)next i 如果要百30个数度字都不一样就要问用答randomize在首句专 切记定义类型属

  • 17594838044vb数字金字塔1 121 12321一直到9
    娄子欢Private Sub Form_Click()Dim a(1 To 5) As Integer For j = 1 To 5 a(j) = j Next j For i = 1 To 5 Print Tab(30 - i * 3);For j = 1 To 2 * i - 1 If j > i Then Print a(2 * i - j);Else Print a(j);End If Next j Next i End Sub 望采纳!!!

  • 17594838044vb中,取字符串中1到9的数字该如何写代码
    娄子欢一个text 和command Private Sub Command1_Click()Dim i As String Dim x As Integer Dim y As String i = CStr(Text1.Text)If Len(i) = 0 Then Print "错误!不能为空!"Else x = Len(i)Do While x If (Mid(i, x, 1)) > 0 And (Mid(i, x, 1)) <= 9 Then y = Mid...

  • 17594838044VB文本框如何实现只能输入1-100数字
    娄子欢Private Sub Text1_LostFocus()If Val(Text1.Text) < 0 Or Val(Text1.Text) > 100 Then MsgBox "请输入1-100的数字"End Sub

  • 17594838044VB 数字递增 从1-10000 输出到文本或者text
    娄子欢窗体添加一个按钮 Command1 添加事件如下:Private Sub Command1_Click() Dim FileNumber Dim num As Integer FileNumber = FreeFile Open "c:\\abc.txt" For Output As FileNumber For num = 1 To 10000 Print #FileNumber, "我爱你" & num & "我想你" Next Close #File...

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网