delphi 小问题 求帮忙看一下

来源:百度知道 编辑:UC知道 时间:2024/06/07 02:58:48
unit Unit2;
interface
type
TMyclass=class(Tobject)
public
function ran():string ;
end;
implementation
uses SysUtils;
function TMyclass.ran():string;
var
i,n,t:integer;
a:array[1..100] of integer;
s:string;
begin
s:='';
for i:=0 to 100 do
a[i]:=i;
for i:=0 to 20 do
begin
n:=random(99-i);
t:=a[n];
a[n]:=a[99-i];
a[99-i]:=t;
s:=s+inttostr(t);
end;
result:=s;
end;
end.

要求做一个 100以内输出20个不重复的随机数 ,但老是内存报错

这是你全部的代码?
如果是就有一个问题,你在哪儿调用那个函数~~~
还有,不重复你是如何做到的,代码里看不出有这功能~

你定义的数组是
a:array[1..100] of integer;

赋值时却是
for i:=0 to 100 do
a[i]:=i;
肯定内存报错啦,a[0]都超出界限了。

最好用数据表,有利于查询是否重复

重复这点很重要的