文本框有如下数据:
25 30 35 40 45
50 55 60 65 70
75 80 85 90 95
0 5 10 15 20
24 32 36 42 48
如何输出各行、各列和总平均值?数据要从文本框读取,方法要是一般性的方法(即行、列更多时仍可用)
25 30 35 40 45
50 55 60 65 70
75 80 85 90 95
0 5 10 15 20
24 32 36 42 48
如何输出各行、各列和总平均值?数据要从文本框读取,方法要是一般性的方法(即行、列更多时仍可用)
Dim sLineC() As String
Dim sCharC() As String
Dim pCount As Long, pChars As Long
sLineC = Split(Text1.Text, vbCrLf)
For i = 0 To UBound(sLineC) - 1
sCharC = Split(Trim(sLineC(i)), " ")
For j = 0 To UBound(sCharC) - 1
If IsNumeric(sCharC(j)) = True Then
Dim pTmp As Long
pTmp = CLng(Trim(sCharC(j)))
pCount = pCount + pTmp
pChars = pChars + 1
End If
Next
Next
Debug.Print "Args:" & pCount / pChars
'---------------计算结果:42.7
'以上代码可以任意行使用
获取每一行,每个数组元素占一行;
用Ubound(LineData)返回文本框的行数。
2、再用:ColData=split(LineData(i)," ")
获取每一行中的元素,即数值;
用Ubound(ColData)返回每一行的元素个数。
3、分别输出并求平均值。
Dim Arr(4, 4)
Private Sub Command1_Click()
For i = 0 To UBound(Arr, 1)
Total2 = 0
For j = 0 To UBound(Arr, 2)
Total1 = Total1 + Val(Arr(i, j))
Total2 = Total2 + Val(Arr(i, j))
Next
Print Tab(7); "第" & i + 1 & "行的平均值是:" & Total2 / 5
Next
For j = 0 To UBound(Arr, 2)
Total3 = 0
For i = 0 To UBound(Arr, 1)
Total3 = Total3 + Val(Arr(i, j))
Next
Print Tab(7); "第" & j + 1 & "列的平均值是:" & Total3 / 5
Next
average1 = Total1 / 25
Print Tab(7); "总的平均值是:" & average1
End SubPrivate Function delspace(ByVal str As String)
str = Replace(str, " ", "*")
str = Replace(str, "**", "*")
delspace = str
End Function
Private Sub Form_Load()
Form1.Show
Print
Print
Print
Form1.FontSize = 18
Open "C:\01.txt" For Input As #1
b = ""
Do Until EOF(1)
Line Input #1, nextline
Print Tab(7); nextline
b = b & nextline & "|"
Loop
Close #1
a = Split(Trim(b), "|")
For i = 0 To UBound(a) - 1
a(i) = delspace(a(i))
C = Split(a(i), "*")
For j = 0 To UBound(C)
Arr(i, j) = C(j)
Next
Next
End Sub