请各位看看我这段随机出题的代码,怎么老是有重复。。。谢谢(100分)

  • 主题发起人 主题发起人 ldwolf
  • 开始时间 开始时间
L

ldwolf

Unregistered / Unconfirmed
GUEST, unregistred user!
此前定义了一数组NUM[1。。10],全部赋初值为零,
procedure tform1.getnum(n:integer);//确定随机数的代码部分
begin
if (n=0) or (not num[n]=0) then
begin
n:=random(10);
getnum(n);
end
else //not n=0
if (not n=0) and (num[n]=0) then
num[n]:=n;
end;

procedure TForm5.Button1Click(Sender: TObject);//将选出的题放入MEMO中
var
i,r,j:integer;
begin
for i:=1 to 5 do
begin
randomize;
r:=random(10);
getnum(r);
table1.locate('number',r,[]);
for j:=1 to table1.fieldcount-1 do
form6.memo1.lines.add(form1.table1.fields[j].asstring);
end;
form6.showmodal;
end;
 
因为这个不是真正的随机数,详细的讨论你可以用“随机数”作为关键字找找以前的帖子。
 
你不是真的要检查 NOT(n)=0吧?
把(not num[n]=0) 和 (not n=0) 改成
not(num[n]=0) 或 (num[n]<>0)
...
 
TO 龙丹:
如果随机数产生0的话,我是不想要啊?
 
http://www.delphibbs.com/delphibbs/listq.asp?room=0&type=2&sort=1&query=%CB%E6%BB%FA%CA%FD&userfrom=&page=
 
not n=0 :是检查n取反以后是否为0
not (n=0) 才是你要的,写成 n<>0 不是更直接吗
 
多人接受答案了。
 
后退
顶部