马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 一心爱霞 于 2017-12-2 13:34 编辑
完成之后, 输入 2 1 或者 3 1 之类的就不正常, 输入 3 2 1 呢就会不显示1,问题多多,折腾半下午了就是发现不了哪里有问题,特别是 输入俩数字 2 1 或者 5 1啊 肯定能出现这个状况 求指教,问题出在哪里, 裸求 看了后面课程,学着下断点,自己解决了
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;
type
TForm1 = class(TForm)
BitBtn1: TBitBtn;
Edit1: TEdit;
Label1: TLabel;
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
//var
{$R *.dfm}
procedure TForm1.BitBtn1Click(Sender: TObject);
var
num: Array[1..100] of Integer;
t: Integer;
str: String;
i: Integer;
temp: String;
m, j, k, n: Integer;
begin
str:= Trim(Edit1.Text);//去除左右空格
i:= 1;
t:= 1;
While ( i < Length(str) ) do
begin
While ( (str[i] <> #32) And (str[i] <> #0) ) do
begin
temp:= temp + str[i];
i:= i + 1;
end;
i:= i + 1;
num[t]:= StrToInt(temp);
t:= t + 1;
showmessage(inttostr(t));
showmessage(temp);
temp:= '';
end;
For m:= 1 to t - 1 do
begin
k:= t - m;
For j:= 1 to k do
begin
If (num[j] < num[j + 1]) then
begin
n:= num[j];
num[j]:= num[j + 1];
num[j + 1]:= n;
end;
end;
end;
Edit1.Text:= '';
For m:= t - 1 Downto 1 do
Edit1.Text:= Edit1.Text + IntToStr(num[m]) + ' ' ;
end;
end.
|