冒泡排序2.0的问题
本帖最后由 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 <> #32 ) and (str <> #0))do //空格是#32,结尾是#0
begin
temp:= temp + str; //依次将字串的每个字符取出来,没空格时
i:= i + 1 ;
end; //遇空格时,退出循环,以识别空格隔开的字串,并独立取出来
num:= 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 < num) then//若小于第二个,就交换一下
begin
m:= num;
num:= num;
num:= m;
end;
end;
end;
//showMessage(IntToStr(n));
edit1.text:= '';
For h:= n-1 Downto 1 do
Edit1.text:= Edit1.text + IntToStr(num) + ' ';
end; 不知是不是 While ( i <= Length(str) )do 这一行,之前搞了< 而不是 <=
页:
[1]