|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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.
复制代码
|
|