var 
  Form1: TForm1; 
  num:array[0..5] of integer; 
implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); 
var 
  i:integer; 
  j:integer; 
begin 
  for i := 0 to 4 do 
  begin 
    repeat 
      for j := 0 to i do 
        if num[j]=num[i] then 
          num[i]:=random(23); 
  until(num[j] <>num[i]); 
  end;   edit1.Text:=inttostr(num[0]); 
  edit2.Text:=inttostr(num[1]); 
  edit3.Text:=inttostr(num[2]); 
  edit4.Text:=inttostr(num[3]); 
  edit5.Text:=inttostr(num[4]); 
end; 
这是我的代码,但总有重复的数字出现

解决方案 »

  1.   

    你的另外一个贴有正确答案了
      

  2.   

    你的代码效率太低了,而且不正确,给你一个思路,0-23,定义一个24个数字的数组,
    取一随机数,取出来以后,把它的位置和24位的数字对换,再取随机数的时候从前面23个数里来取,依次累推,效率高且肯定不会重复,