|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 lxl16 于 2016-11-14 12:18 编辑
若是给的数字中有大于9的两位数,就没问题
若都是小于10的数字,就会在点按钮后,一个一个的不断变少,
不知什么原因,请高手指点一下,谢谢
=================================================
procedure TForm1.BitBtn1Click(Sender: TObject);
var
str,temp: string;
i,h,m,n ,k,j: Integer;
num: Array of Integer;
begin
str:= Trim(Edit1.Text) ;
SetLength(num, Length(str));
//ShowMessage(str);
i:= 1;
j:= 1;
While ( i <= Length(str) ) do //Length返回字符串的长度
begin
While (( Str[i] <> #32 ) and (str[i] <> #0))do //空格是#32,结尾是#0
begin
temp:= temp + str[i]; //依次将字串的每个字符取出来,没空格时
i:= i + 1 ;
end; //遇空格时,退出循环,以识别空格隔开的字串,并独立取出来
num[j]:= StrToInt(temp) ;
i:= i + 1 ; //加一看是不是能跳过空格的位置
j:= j + 1;
temp:= '';
end;
//下边进行冒泡排序
n:= j;
For h:=1 to n-1 do
begin
k:= n - h;
For j:=1 to k do //让交换进行多次,以便排好序
begin
If (num[j] < num[j+1]) then //若小于第二个,就交换一下
begin
m:= num[j];
num[j]:= num[j+1];
num[j+1]:= m;
end;
end;
end;
//showMessage(IntToStr(n));
edit1.text:= '';
For h:= n-1 Downto 1 do
Edit1.text:= Edit1.text + IntToStr(num[h]) + ' ';
end; |
|