0

我有一段代码给我带来了一些麻烦并且令人困惑。

这是一段代码...

int r = rand() % 100;
printf("Random number: %u", r);

为什么每次都打印7?根据这本书,它应该打印任何数字 0-100 我相信......我错了吗?

4

2 回答 2

11

你必须先播种:

srandom(time(NULL));

实际上最好只使用arc4random

int r = arc4random() % 100;
printf("Random number: %u", r);
于 2013-05-17T01:54:24.013 回答
2

随机数是伪随机的。为了使它们看起来是随机的,它们会根据您的设计在任意时间播种。如果您希望播种和“随机”数字生成同时发生,请arc4random改用它,这也提供了其他好处。

于 2013-05-17T04:02:55.563 回答