【发布时间】:2014-03-21 11:58:35
【问题描述】:
我是 C++ 编程的两周新手,但我很难让这段代码按需要工作。我的目标是生成不重复的随机数。这是部分代码,
unsigned long seed = time(NULL);
int gsmNun (int l, int h)
{
srand(seed);
int user_phone = rand()%h+l;
return user_phone;
}
int main()
{
int z = gsmNun(70000000, 99999999);
for(int i=0; i<20; i++)
{
cout << "the random number is!" << z << endl;
}
return 0;
}
【问题讨论】:
-
不要在每次想要生成随机数时使用
srand,而只在程序开始时使用一次。 (如果可能的话,我会坚持使用来自<random>的 rng。) -
有什么问题?如何做到不重复?或者为什么只打印一个数字?因为在
for中,您为z打印了20 次相同的值。也许您希望z的定义和gsmNun调用位于for内? -
您真的要打印包含相同“随机数是!somenumber”的 20 行,其中 somenumber 在所有 20 次迭代中都不会改变?
-
@Kini kirov,问题是,如何制作不重复的号码,谢谢您的输入