中按顺序显示每个学生领取物品的箱子编号,并显示领取结束后非空箱子的编号和剩余物品数量。运行界面如图所示。

回答下面问题:
(1)如果 1 号到 5 号箱子的物品数量分别是 25,16,9,5,3,每位学生需要的物品数量分别是19,18,10,3,则第 3 位学生领取物品的箱子编号按顺序依次是 3 号、____________(填整数)号。
(2)实现上述功能的 VB 程序如下,请在划线处填入合适的代码。
Private Sub get_Click()
Dim a(1 To 100) As Integer, bh(1 To 100) As Integer Dim b(1 To 100) As Integer
Dim n As Integer, m As Integer 'n 表示箱子数量,m 表示需领取物品的学生人数
Dim i As Integer, j As Integer, num As Integer
Dim p As Integer, q As Integer, t As Integer, s As String
'依次获取 Text1 里物品数量存入数组 a,箱子上的编号(1 到 n)依次存入数组 bh,箱子数量存入变量 n,并按物品数量从多到少对箱子排序,代码略
'依次获取 Text2 里学生需要领取物品的数量存入数组 b,学生人数存入变量 m,代码略p = 1: q = 1
For i = 1 To m num = 0
Do While num < b(i) num = num + a(q) a(q) = 0
___Loop
s = "第" & i & "位学生领取物品的箱子编号依次为:"
For j = p To q - 1
s = s + Str(bh(j))
Next jList1.AddItem s
If num > b(i) Then a(q - 1) = _____: q = q - 1
For j = ____ '维护非空箱子降序序列(按箱子中剩余物品数量)
If a(j) < a(j + 1) Then
t = a(j): a(j) = a(j + 1): a(j + 1) = t
t = bh(j): bh(j) = bh(j + 1): bh(j + 1) = t
End If
Next j p = q
Next i
List1.AddItem " 剩余物品数量:" For i = 1 To n
If a(i) > 0 Then List1.AddItem Str(bh(i)) + "号箱子:" + Str(a(i)) Next i
End Sub

同类型试题

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2


y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

