输入一个三位数的整数,将数字位置重新排列,组成一个尽可大的三位数。例如:输入 213,重新排列可得到尽可能大的三位数是321

解决方案 »

  1.   

    Delphi 非技术区 ----> 语言基础、算法、系统设计
      

  2.   

    var
     S,s1,s2,s3 :String;
    begin
     S :=edtif.Text;  .//输入.
     s1:=copy(S,1,1);
     s2:=copy(S,2,1);
     s3:=copy(S,3,1);
     if s1<s2 then
      begin
        if s2<s3 then
        Edtif.Text :=s3+s2+s1
        else if s1<s3 then
        Edtif.Text :=s2+s3+s1
        else
        Edtif.Text :=s2+s1+s3;
      end
      else
      begin
       if(s1<s3) then
        Edtif.Text :=s3+s1+s2
        else if (s3<s2) then
        Edtif.Text :=s1+s2+s3
        else
        Edtif.Text :=s1+s3+s2;
      end;
    end;
      

  3.   

    还是建议楼主把贴子转移到技术区。这是发贴最基本的要求。如果不希望动太多脑筋设计算法,可以借助一些类的Sort方法。下面是借助TStringList类写的一个小函数:procedure MyIntSort(var Src : integer);
    var
      I : integer;
      sSrc : string;
      S : TStringList;
    begin
      sSrc := IntToStr(Src);
      S := TStringList.Create;
      for I := 1 to Length(sSrc) do
        S.Add(sSrc[I]);
      S.Sort;
      sSrc := '';
      for I := S.Count-1 downto 0 do
        sSrc := sSrc + S[I];
      S.Free;
      Src := StrToInt(sSrc);
    end;procedure TForm1.Button1Click(Sender: TObject);// 测试
    var
      I : integer;
    begin
      I := StrToInt(Edit1.Text);
      MyIntSort(I);
      Edit1.Text := IntToStr(I);
    end;
      

  4.   

    上面的MyIntSort过程函数,仅限Integer正整数,不限数值大小。
      

  5.   

    即使不是整数,而是数字字符串,无非把我的那个MyIntSort改一下,把参数由Integer改为string而已,并且更容易实现(因为我在MyIntSort里用到了IntToStr,这步就可以省掉了)。你可以自己试一下。非技术区的题目....
      

  6.   

    To 宣宣:看一下这样是不是符合你的要求?(呵~~借楼主宝地,我们探讨一下。)procedure MySort(var Src : string);
    var
      I : integer;
      S : TStringList;
    begin
      S := TStringList.Create;
      for I := 1 to Length(Src) do
        S.Add(Src[I]);
      S.Sort;
      Src := '';
      for I := S.Count-1 downto 0 do
        Src := Src + S[I];
      S.Free;
    end;procedure TForm1.Button1Click(Sender: TObject);///测试一下
    var
      S : string;
    begin
      S := Edit1.Text;
      MySort(S);
      Edit1.Text := S;
    end;
      

  7.   

    检查第一个字符是否“-”,然后检查字符串长度,并开辟等长BYTE数组,将数字字符串转换到数组里面,利用冒泡排序法排列。