新华书店准备举行“买3送1”周年大酬宾活动,顾客只要每买三本书就可以免除其中一本最便宜的书的书款,上不封顶。其结算系统如图所示。图中左侧显示了顾客已挑选的书的款额,款额保存在数组s中,单击“结算”按钮后,系统会统计出所有书籍的金额数,并自动统计顾客最少所需的付款额。假设顾客买了7本书,价钱分别是10、3、2、4、4、6、9,总金额是38元,则顾客实付只需29元。
以下程序加框处有错,请改正。
Private Sub Command1_Click()
Dim s(1 To 1000)As Single, n As Integer, x As Integer
Dim payment As Single, cost As Single, tmp as Single
‘假设顾客共挑选了n本书,各本书金额数都已存放在数组s中
‘先对n本书按价格降序排序
For i=1 To n-1
x=i
For j=i+1 To n
If Then x=j ’{#blank#}1{#/blank#}
Next j
If x <> i Then
tmp=s(x)
s(x)=s(i)
s(i)=tmp
End If
Next i
‘降序排序后,每隔两本就是一本可以减免的书
cost=0 : payment=0
For i=1 To n
cost=cost+s(i)
If Then ‘{#blank#}2{#/blank#}
payment=payment+s(i)
End If
Next i
Label1.Caption=“总金额:” & cost
Label2.Caption=“实付:” & payment
End Sub