完全的一头雾水
我想让Mob_Dest最后获得的是最短的距离mob_Dest := 500;
MaxCount := 99;
while(i<MaxCount) do
  begin       
    if _addr>0 then
    begin
      if(abs(x) < mob_Dest) and (abs(y) < mob_Dest) then
      begin
        Env_Mob_Dest := abs(x) + abs(y);
        if(Mob_Dest*2 > Env_Mob_Dest) then
        begin
          Mob_Dest := Env_Mob_Dest/2;
        end;
 
      end;
    end;
    i := i+1;
  end;

解决方案 »

  1.   


    //冒泡排序
    var
      iParam:array[0..4] of integer;
      i,j,a:integer;
    begin
      iParam[0]:=122;
      iParam[1]:=43;
      iParam[2]:=43;
      iParam[3]:=54;
      iParam[4]:=1;
      for i:=0 to 4 do
      begin
        for j:=i+1 to 4 do
        begin
          if iParam[i]<=iParam[j] then
          begin
            a:=iParam[i];
            iParam[i]:=iParam[j];
            iParam[j]:=a;
          end;
        end;
      end;  for i:=0 to 4 do
        showmessage(inttostr(iParam[i]));
    end;
      

  2.   

    把楼上的转换成while语句就行了
    for转while没难度
    也就是需要两个while
      

  3.   


    //ðÅÝÅÅÐò
    var
      iParam:array[0..4] of integer;
      i,j,a:integer;
    begin
      iParam[0]:=122;
      iParam[1]:=43;
      iParam[2]:=43;
      iParam[3]:=54;
      iParam[4]:=1;
      i:=0;
      while i<=4 do
      begin
        j:=i+1;
        while j<=4 do
        begin
          if iParam[i]<=iParam[j] then
          begin
            a:=iParam[i];
            iParam[i]:=iParam[j];
            iParam[j]:=a;
          end;
          j:=j+1;
        end;
        i:=i+1;
      end;  for i:=0 to 4 do
        showmessage(inttostr(iParam[i]));
    end;