请问如何找出一个数组中的第二个大值的位置?

解决方案 »

  1.   

    可以先将这个数组copy到另外一个数组,然后对另外的那个数组里的进行排序,排出第二大值,最后对两数组进行compare,返回第二大值在初数组里的序号不就ok了?
      

  2.   

    function foundsecondaddress(const avalues array of double): integer;
    var I,J: integer;
        N : integer;
    begin
      I := 0;
      J := 0;
      for N := 0 to avalueslength -1 do
       begin
          if Avalues[N] > Avalues[I] then
          begin
             if Avalues[N] > Avalues[J] then
             begin
                J := N;
                I := J;
             end
             else begin
                I := N;
             end; 
          end;
       end;
      result := I;
    end;大概就这样的吧;我没去测试;楼主自己试试看;