回 帖 发 新 帖 刷新版面

主题:给个思路

目的:想从A-Z随机产生6-10个字母

要求:首先生成字符串长度--6到10之间一个数n;然后产生n个字母,且当每产生一个字母则将这个字母从原集合【A-Z】中删除,然后在产生下一个字母


大侠们给个思路该怎么做?

回复列表 (共5个回复)

沙发

问题太简单没人愿意回答?我是初学的,大侠们耐心指导下。谢谢!

板凳

随机生成N和字母,存在另一个集合中,之后用A-Z集合减去这个集合

3 楼


谢谢小地小地!! 先试试。。。。[em2]

4 楼

var
  s:string; t:char;
  a:array [1..26] of real; e:real;
  l:byte;
  i,j:byte;
begin
  for i:=1 to 26 do s[i]:=chr(ord('A')+i-1);s[0]:=#26;
  {先顺序存储A~Z}
  randomize; l:=6+random(5);
  {随机化 产生长度l}
  for i:=1 to 26 do a[i]:=random;
  for i:=1 to 25 do for j:=i+1 to 26 do if a[j]>a[i] then begin
    t:=s[i];s[i]:=s[j];s[j]:=t;
    e:=a[i];a[i]:=a[j];a[j]:=e;
  end;
  {这里就是一个简单的冒泡排序}
  s[0]:=chr(l);
  {s[0]表示字符串的长度(char类型)}
  writeln(s);
end.

5 楼

谢谢小田甜!!

我来回复

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