我们要做个VB作业,根本无从下手。。求大神帮助

2025-02-27 07:37:38
推荐回答(1个)
回答1:

Option Explicit
Dim i, t, s, b, c, k, l, temp, max, m, n As Integer
Private Sub Command1_Click()
Cls
t = 0: s = 0
Dim a(1 To 10) As Single
For i = 1 To 10
a(i) = Val(InputBox("请输入第" & i & "个数", "8_1"))
Next i
Print "原始数组:"
For i = 1 To 10
Print a(i),
If i Mod 5 = 0 Then Print
Next i
Print
Print "正数数组:"
For i = 1 To 10
If a(i) > 0 Then
t = t + 1: s = s + a(i)
Print a(i),
If i Mod 5 = 0 Then Print
End If
Next i
Print ""
Print "正数和="; s
Print "正数个数="; t
b = a(1)
For i = 1 To 10
If a(i) > b Then b = a(i)
Next i
Print "正数最大="; b
c = a(1)
For i = 1 To 10
If a(i) < b Then b = a(i)
Next i
Print "正数最小="; c
End Sub
Private Sub Command2_Click()
Cls
t = 0: c = 0
Print "原始数组:"
Dim a(1 To 50) As Single
Randomize
For i = 1 To 50
a(i) = Int(Rnd * 200) + 100
Print a(i),
If i Mod 5 = 0 Then Print
Next i
Print ""
Print "偶数数组;"

ReDim b(50) As Integer
For i = 1 To 50
If a(i) Mod 2 = 0 Then
c = c + 1
b(c) = a(i)
Print b(c),
t = t + 1
If t Mod 5 = 0 Then Print
End If
Next i
Print ""
Print "排序后偶数数组:"

For k = 1 To c - 1
max = b(k)
For l = k + 1 To c
If max < b(l) Then
max = b(l)
temp = b(k): b(k) = b(l): b(l) = temp
End If

Next l
Print max,
m = m + 1
If m Mod 5 = 0 Then Print
Next k
End Sub
Private Sub Command3_Click()
Print "原始数组:"
Dim x(1 To 20) As Integer
For i = 1 To 20
Randomize
x(i) = Int(90 * Rnd) + 10
Print x(i),
m = m + 1
If m Mod 5 = 0 Then Print
Next i
s = Val(InputBox("请输入要删除的一个整数", "8-1"))
ReDim b(20) As Integer
For i = 1 To 20
If x(i) - s = 0 Then
n = n + 1
b(n) = x(i)
End If
Next i
If b(1) <> 0 Then
Print "要删除的整数为:"; b(1)
Else
Print "无此数据!"
End If
End Sub