数据库 数据仓库:用VB编程

来源:百度文库 编辑:高校问答 时间:2024/04/29 23:19:28
利用随机函数Rnd()生成25个正整数,分别赋给一个5*5数组的每一元素,然后找出最大元素的位置,并按“A(n1,n2)=M”形式打印出来

Private Sub Command1_Click()
List1.Clear
Dim Ldata(4, 4) As Variant
Dim i, j, m, n, x, y As Integer
For i = 1 To 5 Step 1
For j = 1 To 5 Step 1
m = Int(6000 * Rnd(1) + 1)
Ldata(i - 1, j - 1) = m
Next
Next
For i = 1 To 5 Step 1
For j = 1 To 5 Step 1
List1.AddItem Ldata(i - 1, j - 1)
Next
Next
n = 0
For i = 1 To 5 Step 1
For j = 1 To 5 Step 1
m = Ldata(i - 1, j - 1)
If m > n Then
x = i - 1
y = j - 1
n = m
Else
n = n
End If
Next
Next
Text1.Text = "最大数:A(" & x & "," & y & ")=" & n
End Sub

Dim arr(4, 4) As Integer
Dim i As Integer, j As Integer
Dim max(2) As Integer
'给数组arr随机赋值
For i = 0 To 4
For j = 0 To 4
Randomize
arr(i, j) = Int((10000 - 1 + 1) * Rnd + 1)
Next
Next
'查找并打印最大数第一次出现的位置和数
max(0) = 0
For i = 0 To 4
For j = 0 To 4
If max(0) < arr(i, j) Then
max(0) = arr(i, j)
max(1) = i
max(2) = j
End If
Next
Next
Print "A(" & CStr(max(1)) & "," & CStr(max(2)) & ")=" & CStr(max(0))
'查找并打印后面出现的最大数的位置和数
For i = max(2) To 4
For j = 0 To 4
If i = max(1) And j = max(2) Then
GoTo continue
End If
If arr(i, j) = max(0) Then
Print "A(" & CStr(max(1)) & "," & CStr(max(2)) & ")=" & CStr(max(0))
End If
continue:
Next j
Next i

二楼的过于麻烦了,arr(i, j) = 1000 * Rnd 就可以了吧,INT MAX=A , B IF A〈ARR(I,J) THEN
ARR(I,J)=B B=A A=ARR(I,J),找出最大的然后输出For i = 0 To 4
For j = 0 To 4 PRINT ARR(I,J)是不是就可以了啊?

对啊,程序要求就是要精、准。二楼兄弟
arr(i, j) = Int((10000 - 1 + 1) * Rnd + 1)
为什么不就改成
arr(i, j) = 10000* Rnd + 1
因为你定义的数组就是整型,可以去掉int。
最后那个+1是防止产生数字0,
10000 - 1 + 1则不知道是为何意?