要写一个累加函数.
但未知函数的参数个数(全是int型).
请问怎样实现的?为方便大家理解.
附VB中实现方法.Dim x As Variant
Dim y As Integer
Dim intsum As Integer
Sub sum(ParamArray intnums())
Dim y As Integer
y = 0
 For Each x In intnums
 y = y + x
 Next x
 intsum = y
End SubPrivate Sub Command1_Click()
sum 1, 2, 3, 4
Print intsum
End Sub

解决方案 »

  1.   

    lijinghe1(副乡长)(兼潘家代庄抗日弹弓队队长):举一个简单点的例子好吗?
      

  2.   

    "不定参数" 的函数
    procedure TScoreTestTests.AddPlayerScore(const APlayerScore : VARIANT);
    var
      SQL: String;
    begin
      SQL := 'insert into tb_score (s_sport, s_order, s_player, s_item, s_level, s_consult, s_text)'
        + 'values(''' + APlayerScore[0] + ''', ''' + APlayerScore[1] + ''','''
        + APlayerScore[2] + ''',''' + APlayerScore[3] + ''',''' + APlayerScore[4]
        + ''',''' + APlayerScore[5] + ''',''' +  APlayerScore[6] +''')';
      try
        SQLUpdate(SQL);
      except
      {$ifdef _DEBUG}
        on EDatabaseError do
          raise EDatabaseError.Create('睰Θ罿魁魁狡Θ罿魁!');
      {$endif}
        on EDBEngineError do
          raise EAbort.Create('计沮畐硈钡岿粇!');
      end;
    end;
    "不定参数" 的函数的调用
    procedure TScoreTestTests.AddPlayerScoreTest;
    var
      i: Integer;
      v: VARIANT;
    begin
      v := VarArrayCreate([0,0], varVariant);
      for i := 1 to 8 do
      begin       
        v[0] := VarArrayOf(['01.01', '01.02', '01.'+ FormatFloat('00',i + 32), '01', '蔼舱','', '']);
        AddPlayerScore(v[0]);
      end;
    end;
      

  3.   

    function TForm1.GetSum(const a: array of Integer): Integer;
    var
      i: Integer;
    begin
      result := 0;
      for i := Low(a) to High(a) do
        result := result + a[i];
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
      ShowMessage(IntToStr(GetSum([1, 2, 3, 4, 5, 6])));
    end;
      

  4.   

    可以使用open array为参数,也可以使用指针,很好解决的