VB编程题用冒泡法从大到小输出,并另单独输出最大值和最小值、平均值。

dim a(10)
for i=1 to 10
input a(i)
next i
for i=1 to 10-1
for j=1 to 10-i
if a(j)<a(j+1) then swap a(j),a(j+1)
next j
next i
for i=1 to 10
print a(i);
next i
end 这是我用冒泡法从大到小输出,请问怎么单独输出最大值和最小值还有平均值啊

第1个回答  2012-05-27
Private Sub Command1_Click()
Dim a(11) As Single
For i = 1 To 10
Do
b = InputBox("请你输入10个数字", "第 " & i & "个", 10)
Loop Until IsNumeric(b)
a(i) = b
Next i

For i = 1 To 10
For j = 1 To (i - 1)
If a(j) < a(i) Then
Call Swap(a(i), a(j))
End If
Next j, i

Dim Nsum As Single
Nsum = 0
For i = 1 To 10
Nsum = Nsum + a(i)
Print a(i)
Next i

Nsum = Nsum / 10
Print
Print "最大值是 " & a(1)
Print "最小值是 " & a(10)
Print "平均值是 " & Nsum

End Sub

Sub Swap(a, b)
Tmp = a: a = b: b = Tmp
End Sub
第2个回答  2012-05-25
Private Sub Command1_Click()
'你如果真正理解冒泡排序法,那代码应该看得明白。
Dim A(9) As Integer
Dim I, J As Integer
Dim temp As Integer '临时交换用
Dim sum As Integer
Randomize '初始化随机函数
'取10个随机数(范围100以内)并存放到数组中
For I = 0 To 9
A(I) = Int(Rnd * 100)
Next I
'开始冒泡排序
For I = 0 To 8
For J = I + 1 To 9
'冒泡原理(大的数下沉,小的数上浮)即(如果前面的大于后面的数,两者交换)
If A(I) < A(J) Then temp = A(I): A(I) = A(J): A(J) = temp
Next J
Next I
Cls
For I = 0 To 9
sum = sum + A(I)
Print A(I);
Next I
Print
Print "最大值:" & A(0)
Print "最小值:" & A(9)
Print "平均值:" & sum / 10
End Sub
第3个回答  2012-05-24
前面的一样,后面的改一下:
Dim sum As Integer
For i = 1 To 10
sum = sum + a(i)
Print a(i);
Next i
Print
Print "最大值:" & a(1)
Print "最小值:" & a(10)
Print "平均值:" & sum / 10