各位高手,现在做项目遇到一个算法问题,就是已经有了一个数组,data[1..8],现在不知道怎样取得数组里最大的两个数,并记下它在数组中的序号i,小弟在线等。谢谢!!!!!!!!

解决方案 »

  1.   

    var data:array[1..8]of integer;
        i,max1,max2,i1,i2:integer; //max1,max2为最大两个数,i1,i2为下标
    begin
      max1:=data[1];i:=1;
      for i:=1 to 8 do
       if data[i]>=max1 then
         begin
            max2:=max1;
            i2:=i1;
            max1:=data[i];
            i1:=i;
         end;
    end;
      

  2.   

    var data:array[1..8]of integer;
        i,imax1,imax2:integer; //imax1,imax2为最大两个数的下标
    begin
      imax1:=1;i:=1;
      for i:=2 to 8 do
       if data[i]>=data[max1] then
         begin
            imax2:=imax1;
            imax1:=i;
         end;
    end;////////////////////
    如果数组里有好多相同的值,则最后指向了最后的两个数