用DELPHI编写一个函数

输入大概1-7位数随便的一个字符,生成肯定不重复的8位数的数字的函数即可用DELPHI语言不是随机生成,比如第一次输入ABC123,生成的8位数是固定的,下次输入生成的结... 输入大概1-7位数随便的一个字符,生成肯定不重复的8位数的数字的函数即可
用DELPHI语言
不是随机生成,比如第一次输入ABC123,生成的8位数是固定的,下次输入 生成的结果一样
展开
 我来答
280707582
2010-03-22 · 超过10用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:0
展开全部
{$apptype console}
program exp;
var a:array[1..7] of 1..7; i,j,k:integer;
begin
randomize;
for i:=1 to 7 do a[i]:=i;
for i:=1 to 7 do
begin
j:=random(7-i+1)+i;
if j<>i then begin k:=a[i];a[i]:=a[j];a[j]:=k; end;
end;
for i:=1 to 7 do write(a[i]:4);
end.
{新建一个console application 将代码粘进去生成程序到D盘,然后在命令行里打cmd输如刚刚生成的程序的全名,例如:project1.exe}

我知道你的意思了,你的目的就是像注册一样,一个用户名生成一个id号码。对吗,其实可以自动加一啊。每注册成功一个id号码自动加一;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
186044
2010-03-19 · TA获得超过1966个赞
知道大有可为答主
回答量:848
采纳率:0%
帮助的人:1317万
展开全部
不会DELPHI,用C写个,你改成DELPHI吧,程序很简单,语法应该差不多。

int[] getnum()
{
srand((unsigned)time(NULL));
int[] num=int[8];
int i=0,is0=0;
while(1)
{
int r=rand()%10;
if(r==0)
{
if(is0==0)
{
is0=1;
i++
}
else continue;
}
else
{
int iscon=0;
for(int j=0;j<8;j++)
{
if(num[j]==r) iscon=1;
}
if(iscon==1)
continue;
else
{
num[i]=r;
i++;
}
}
if(i>8&is0) break;
}
return num;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
李白韩信杜甫
2010-03-19 · TA获得超过1340个赞
知道小有建树答主
回答量:486
采纳率:0%
帮助的人:347万
展开全部
function Calc: string;
const
a = '12345678';
var
I: Integer;
J: Integer;
L: Integer;
T: Char;
begin
Randomize;
Result := a;
L := Length(Result);
for I := 1 to L do begin
J := Random(L) + 1;
T := Result[I];
Result[I] := Result[J];
Result[J] := T;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Caption := Calc;
end;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
changjeff
2010-03-19 · TA获得超过804个赞
知道小有建树答主
回答量:2008
采纳率:54%
帮助的人:839万
展开全部
呵呵,这个简单吧,判断一下,用一个随机函数,生成8位数字,然后和原来的数进行比较
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式