回 帖 发 新 帖 刷新版面

主题:如何表示几个変数是不同的?

其實我的目的是這樣:
令x[1],x[2].............x[9]
成為1-9 中隨機的一個數,但是,不能重複
下列程序部分該如何修改?
uses crt;
type arr=array[1..9]of 1..9;
var
p:integer;
procedure row(var x:arr);
begin
for p:=1 to 9 do
x[p]:=random(9)+1;
end;
另外如何表示出x[1]<>x[2]<>x[3].....<> x[9]?

回复列表 (共3个回复)

沙发

建一个集合
var
s:set of 1 .. 9;
procedure row(var x:arr);
begin
for p:=1 to 9 do
repeat
  x[p]:=random(9)+1;
until not(x[p] in s);
s:=s+[x[p];
end;

表忘了加分呦~~~~~~~~

板凳

Program AddScore;
Var Rep:Set of 0..9
    Num:Array[1..9]of integer;
    Count:integer;
Begin
  Count:=1;Randomize;
  While Count<=9 do begin
    While Try(Num[Count])=FALSE then Num[Count]:=Random(9)+1;
    Count:=Count+1;
  end;
  for Count:=1 to 9 do write(Num[Count]);
End.

3 楼

有个小错误,应为:
var
s:set of 1 .. 9;
procedure row(var x:arr);
begin
for p:=1 to 9 do
begin
  repeat
    x[p]:=random(9)+1;
  until not(x[p] in s);
  s:=s+[x[p];
end;
end;

我来回复

您尚未登录,请登录后再回复。点此登录或注册