早教吧 育儿知识 作业答案 考试题库 百科 知识分享

vb上机操作题关于数组随机产生N个(20《=n,=100)两位整数,找出其中的奇数、偶数和素数,并将奇数按升序排序,将偶数按降序排序,讲素数求和

题目详情
vb上机操作题关于数组
随机产生N个(20《=n,=100)两位整数,找出其中的奇数、偶数和素数,并将奇数按升序排序,将偶数按降序排序,讲素数求和
▼优质解答
答案和解析
Private Sub Form_Click()
Dim n%, a%(), j%(), O%(), s%()
Randomize
n = Val(InputBox("请输入要产生的随机数个数n:"))
ReDim a(n)
Print n; "个随机数为";
For i = 1 To n
a(i) = Int(Rnd * 81 + 20)
Print a(i);
Next
Print
'找出奇数
ReDim j(1)
k = 1
For i = 1 To n
If a(i) Mod 2 = 1 Then
j(k) = a(i)
k = k + 1
ReDim Preserve j(k)
End If
Next
'将奇数按升序排列
For i = 1 To k - 1
For m = 1 To k - 1 - i
If j(m) > j(m + 1) Then t = j(m): j(m) = j(m + 1): j(m + 1) = t
Next
Next
Print "其中奇数有:";
For i = 1 To k - 1
Print j(i);
Next
Print
'找出偶数
ReDim O(1)
k = 1
For i = 1 To n
If a(i) Mod 2 = 0 Then
O(k) = a(i)
k = k + 1
ReDim Preserve O(k)
End If
Next
'将偶数按升序排列
For i = 1 To k - 1
For m = 1 To k - 1 - i
If O(m) < O(m + 1) Then t = O(m): O(m) = O(m + 1): O(m + 1) = t
Next
Next
Print "其中奇数有:";
For i = 1 To k - 1
Print O(i);
Next
Print
'找出素数
Dim f As Boolean
ReDim s(1)
k = 1
For i = 1 To n
f = False
For m = 2 To Sqr(a(i))
If a(i) Mod m = 0 Then f = True: Exit For
Next
If Not f Then s(k) = a(i): k = k + 1: ReDim Preserve s(k)
Next
'素数求和
For i = 1 To k - 1
Sum = Sum + s(i)
Next
Print "素数的和为:"; Sum
End Sub
看了 vb上机操作题关于数组随机产...的网友还看了以下: