作业帮 > 综合 > 作业

用VB编写一程序,产生20个0~100的随机数,并用子过程的方法按从大到小的顺序排列显示

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/10 10:41:54
用VB编写一程序,产生20个0~100的随机数,并用子过程的方法按从大到小的顺序排列显示
如何用子过程去做这题?这是我的问题所在.因为没有财富值了,所以无法悬赏了,
试一下:
Private Sub Command1_Click()
Dim arr(1 To 20),i
For i = 1 To 20
Randomize
arr(i) = Int(Rnd * 101)
Next
fc arr
Print Join(arr,vbNewLine) '自己修改,我是直接打印的可以分开
End Sub
Function fc(arr)
Dim i,j,t
For i = LBound(arr) To UBound(arr) - 1
For j = i + 1 To UBound(arr)
If Val(arr(i)) < Val(arr(j)) Then
t = arr(i):arr(i) = arr(j):arr(j) = t
End If
Next
Next
End Function
再问: 为什么这里没有函数的调用这一步??我想问一下用子过程或者子函数与一般的过程有什么区别?
再答: fc arr 这就是函数调用 --------------- 也可以改成过程,一般用函数的比较多 Private Sub Command1_Click() Dim arr(1 To 20), i For i = 1 To 20 Randomize arr(i) = Int(Rnd * 101) Next fc arr Print Join(arr, vbNewLine) '自己修改,我是直接打印的可以分开 End Sub Sub fc(arr) Dim i, j, t For i = LBound(arr) To UBound(arr) - 1 For j = i + 1 To UBound(arr) If Val(arr(i)) < Val(arr(j)) Then t = arr(i): arr(i) = arr(j): arr(j) = t End If Next Next End Sub ----------- 函数既能传递值,又可以有返回值,过程只能传递值本身不能返回值
再问: 你好,能问一下为什么会出现这样的运行界面?我的调用程序程序是这样的: Private Sub Command3_Click() Call y(a()) Picture4.Print "从大到小排列:" For i = LBound(a) To UBound(a) Picture4.Print a(i); If i Mod 5 = 0 Then Picture4.Print End If Next End Sub
再答: Picture4.Print a(i); If i Mod 5 = 0 Then Picture4.Print End If '修改一下试试: If i Mod 5 = 0 Then Picture4.Print a(i) Else Picture4.Print a(i);
再问: 还是不行啊,变成这样了: