食堂排队买菜问题。在食堂排队买菜时,每个同学都有一个窗口买菜时间,如果某同学的等待时间超过他在窗口买菜时间的3倍,他就会不愉快,并且不参与排队,反之是愉快的。等待时间是指排在该同学之前的所有人的买菜时间之和。已知每个同学在窗口的买菜时间,请确定如何排队才能使愉快的人数最多,并输出最多的人数。例如:10个同学的买菜时间如下表所示,则最多有8个人是愉快的。
学生编号
1
2
3
4
5
6
7
8
9
10
买菜时间
3
2
5
5
6
7
1
8
1
3
最终是否参与排队
是
是
是
是
否
是
是
否
是
是
Const n = 10
Dim a(1 To n)As Integer
Private Sub Command1_Click()
Dim i As Integer,s As Integer,ans As Integer,t As Integer
'读取每个学生的买菜时间,依次存储在数组a中,代码略
For i = 1 To n-1
k = i
For j = n To i + 1
Step - 1
If
Then k = j
Next j
If a(i)<>a(k)Then t=a(i):a(i)= a(k):a(k)=t
Next i
s = 0:ans = 0
For i = 1 To n
If Then s=s + a(i):ans = ans + 1 Next i Label1.Caption ="共有"+ Str( ans)+"个人是愉快的,且参与排队买菜。"
(1)
代码“Private
Sub Command1_Click()”中的Command1是(单选,填字母:A .对象名/B
.事件名/C .事件处理过程名)。
(2)
请在划线处填入合适代码。
(3)
程序代码的加框处有错,请改正。
(4)
若10个同学的买菜时间都相同,则有个人是愉快的,且参与排队。
答案: 【1】A
a(j)<a(k)
a(i)*3>=s
【1】4