有如下程序,用来求10个整数(整数从键盘输入)中的最大值:
Private Sub Command1_Click()
Dim a(10) As Integer, max As Integer
For k=1 To 10
a(k)=InputBox("输入一个整数")
Next k
max=0
For k=1 To 10
If a(k)>max Then
max=a(k)
End If
Next k
Print max
End Sub
运行程序时发现,当输入10个整数时,可以得到正确结果;但输入10个负数时结果是错误的。程序需要修改,下列修改中可以得到正确运行结果的是
A.把If a(k)>max Then改为If a(k)<max Then
B.把max=a(k)改为a(k)=max
C.把第二个循环语句For k=1 To 10改为For k=2 To 10
D.把max=0改为max=a(10)
参考答案:D
解析: 错误的原因在于程序一开始时假定的最大值为0,当输入的数小于0时,在比较过程中会始终认为0值是最大值,这样就不能在输入的所有值中挑选出最大值。
假定最大值时可以取输入值中的任意一个值,也可以取比所有输入值都还要小的一个值,这样在第一次比较时,就会用输入的值替换掉最初假定的值。