一组数据连续相加,如果一个小于0,停止相加,把大于0的数相加
 
  如:a+b+c+d+e+f
      
       如果e小于0,停止相加,把大于0的数(a,b,c,d)相加

解决方案 »

  1.   

    Private Sub Command1_Click()
    Dim a(5) As Integer
    Dim i As Integer
    Dim sum As Integer
        a(0) = 1
        a(1) = 2
        a(2) = 4
        a(3) = 55
        a(4) = -10
        a(5) = 133
        
        For i = 0 To 5
            If a(i) < 0 Then
                Exit For
            Else
                sum = sum + a(i)
            End If
        Next
        MsgBox "数组的和为:" & sum
    End Sub
      

  2.   

    2楼的方法可行
    1、防止溢出,把Dim sum As Integer改为Dim sum As Long
    2、如果数组上下标未知时,可把For i = 0 To 5 改为for i=lbound(a) to ubound(a)
      

  3.   

    如果不行,那你的意思是不是加上所有大于0的数,若是这样就把1楼的If a(i) < 0 Then 
       Exit For 
    Else 
       sum = sum + a(i) 
    End If 改成:If a(i) > 0 Then 
       sum = sum + a(i) 
    End If 
      

  4.   

    二楼兄弟的代码应该没问题。要不试一试下面的程序。Private Sub Form_Load()
        Dim a()
        Dim i As Integer
        Dim sum As Integer    a = Array(1, 2, 3, 4, 5, -12, -7, 89, 990)
        sum = 0
        
        For i = LBound(a) To UBound(a)
            If a(i) >= 0 Then
                 sum = sum + a(i)
            Else
                 Exit For
            End If
        Next
        MsgBox "数组的和为:" & sumEnd Sub