当前位置 : 主页 > 编程语言 > c语言 >

使用vb6中的SUM函数对数组中的元素求和

来源:互联网 收集:自由互联 发布时间:2021-06-24
我需要在双精度数组中求和一部分元素.举个简单的例子 考虑一个包含10个元素的数组: Dim Array(1 To 10) As Double 其中每个元素都分配了一些值. VB中是否有一个函数可以将前5个元素相加?
我需要在双精度数组中求和一部分元素.举个简单的例子
考虑一个包含10个元素的数组:

Dim Array(1 To 10) As Double

其中每个元素都分配了一些值. VB中是否有一个函数可以将前5个元素相加?显然这可以通过循环解决,但有一个单行解决方案吗?我想保持我的代码一致.我尝试使用SUM但没有成功.

谢谢!

不,VB6中没有内置的求和功能可以满足您的需求,但您可以轻松编写一个:

Public Function SumRange(ByRef dblArray() As Double, Optional ByVal StartRange As Long = -1, Optional ByVal Length As Long = -1)

   '-1 on StartRange indicates start at low bound
   If StartRange = -1 Then
      StartRange = LBound(dblArray)
   End If

   '-1 on Length indicates to span all elements to the end of the array
   If Length = -1 Then
      Length = UBound(dblArray) - StartRange - 1
   End If

   Dim dTotal As Double
   Dim lNdx As Long

   For lNdx = StartRange To StartRange + Length - 1
      dTotal = dTotal + dblArray(lNdx)
   Next lNdx

   SumRange = dTotal

End Function

请注意我没有sytaz检查这个,所以请注意拼写错误.它可以使用如下:

dResult = SumRange(myArray) 'summ all

dResult = SumRange(myArray, 3) 'sum all starting at offset 3

dResult = SumRange(myArray, , 2) 'sum the the first 2 elements

dResult = SumRange(myArray, 2, 4) 'sum a range start at 2 and with length of 4

您可以修改该方法以获取另一个可选的布尔值,以指定您是否可以容忍(忽略)越界.现在,如果要求总结的元素数量超过数组中存在的元素,则会产生错误.

网友评论