当前位置:编程学习 > VB >>

vb编程的问题

1、随机产生50个1-200之间的随机整数,按从小到大的顺序排序输出。要求:先输出产生的随机数,然后输出排序后的结果,每行输出10个数。

2、有一个排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中。
答案:
'第一题答案
Private Sub Form_Click()
Dim a(1 To 50) As Integer
Randomize Timer
Print "随机产生的数据是:"
For i = 1 To 50
a(i) = Int(Rnd * 200 + 1)
Print a(i); " ";
If i Mod 10 = 0 Then Print
Next i
For i = 1 To 49
For j = i + 1 To 50
If a(i) > a(j) Then
c = a(i)
a(i) = a(j)
a(j) = c
End If
Next j
Next i
Print
Print "排好序的数据是:"
For i = 1 To 50
Print a(i); " ";
If i Mod 10 = 0 Then Print
Next i
End Sub
1、
Dim arr(50), maxIndex, tmp As Integer
maxIndex = UBound(arr)
Randomize
Form1.Cls
Print "随机产生50个整数:" & vbCrLf
For i = 1 To maxIndex
arr(i) = Int(Rnd() * 200 + 1)
Next i
For i = 1 To maxIndex
Print arr(i);
If (i Mod 10) = 0 Then Print vbCrLf
Next i

For i = 1 To maxIndex - 1
For j = i + 1 To maxIndex
If arr(i) > arr(j) Then
tmp = arr(i)
arr(i) = arr(j)
arr(j) = tmp
End If
Next j
Next i

Print "排序后(从小到大):" & vbCrLf
For i = 1 To maxIndex
Print arr(i);
If (i Mod 10) = 0 Then Print vbCrLf
Next i

2、
ReDim arr(5) As Integer '定义动态数组
Dim InsertNum, i, j As Integer 'InsertNum保存输入的数;i,j用于循环

arr(0) = 11
arr(1) = 23
arr(2) = 36
arr(3) = 44
arr(4) = 52
arr(5) = 66
Form1.Cls '清空form窗体

'输出数组
Print "设一数组从小到大排序如下:"
For i = 0 To UBound(arr)
Print arr(i) & " ";
Next i
Print vbcrlef

i = 0 '初始化变量i,因为后面循环要用该变量

InsertNum = Int(InputBox("请输入要插入数组的数")) '等待用户输入要插入的数值

'查找数组中插入数值的位置
'因为数组已经从小到大排序,arr(i) > InsertNum 时,i就是要插入数值的位置
Do While (arr(i) < InsertNum)
i = i + 1
If i > UBound(arr) Then Exit Do
Loop

ReDim Preserve arr(UBound(arr) + 1)
For j = UBound(arr) To i + 1 Step -1
arr(j) = arr(j - 1)
Next j
arr(i) = InsertNum


Print "数组插入一个数值后:"
For i = 0 To UBound(arr)
Print arr(i) & " ";
Next i

上一个:几个vb编程问题
下一个:VB编程显示动画问题?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,