vb编程改错啊 求救

来源:百度知道 编辑:UC知道 时间:2024/06/15 06:04:15
Private Function f(b() As Integer, ByVal n As Integer)
Dim i As Integer
For i = 1 To n
b = b + b(i)
Next i
b = b / n
End Function

Private Sub Command1_Click()
Dim a(10) As Integer, n, i As Integer, x As Single, v As Single, m As Single
For i = 1 To 10
a(i) = InputBox("输入第" & i & "个数")
Next i
Call f(a, n)
v = a(n)
m = a(1)
For i = 1 To 10
v = Abs(a(i) - v)
If m > v Then
x = v
Next i
Print x
End Sub
输入十个数组,调用function的函数(求平均值),最后打印数组中与平均值差值最小的数

???????????Private Function f(b() As Integer, ByVal n As Integer) As Double
Dim i As Integer
Dim s As Double
For i = 1 To n
s = s + b(i)
Next i
s = s / n
f = s
End Function

Private Sub Command1_Click()
Dim a(10) As Integer, n, i As Integer, x As Single, v As Single, m As Single, j As Single
n = 10
For i = 1 To 10
a(i) = InputBo

Private Function f(b() As Integer, ByVal n As Integer) As Double
Dim i As Integer
Dim s As Double
For i = 1 To n
s = s + b(i)
Next i
s = s / n
f = s
End Function

Private Sub Command1_Click()
Dim a(10) As Integer, n, i As Integer, x As Single, v As Single, m As Single, j As Single
n = 10
For i = 1 To 10
a(i) = InputBox("输入第" & i & "个数")
Next i
v = f(a, n)
m = -1
For i = 1 To 10
j = Abs(a(i) - v)
If m > j Or m = -1 Then
m = j
x = i
End If
Next i
Print a(x)
End Sub

改好了,你把上面的代码拿去调试看看,应该没问题

1、b = b + b(i) 和b = b / n 中的b应该换一个字母;
2、If m > v Then
3、x = v 后面少了End if;
4、Call f(a, n) 中n没有赋值,造成CALL时溢出;
5、Call f(a, n) 的作用没有用到,以至于可以去掉;
6、程序意图不明显。
希望从以上几方面修改。祝你成功!

Private Function f(b() As Integer)
Dim i As Integer
Dim n As Integer
n = UBound(b)
For i = 0 To n
f = f